diff options
Diffstat (limited to 'lib/parameters.py')
-rw-r--r-- | lib/parameters.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/lib/parameters.py b/lib/parameters.py index 82b1fdc..9ecd7e9 100644 --- a/lib/parameters.py +++ b/lib/parameters.py @@ -291,9 +291,7 @@ def _compute_param_statistics_parallel(arg): def _all_params_are_numeric(data, param_idx): """Check if all `data['param'][*][param_idx]` elements are numeric, as reported by `utils.is_numeric`.""" param_values = list(map(lambda x: x[param_idx], data)) - if len(list(filter(is_numeric, param_values))) == len(param_values): - return True - return False + return all(map(is_numeric, param_values)) class ParallelParamStats: @@ -738,6 +736,26 @@ class ModelAttribute: new_param_values.append(param_tuple) return partition_by_param(self.data, new_param_values) + def depends_on_any_param(self): + for param_index, param_name in enumerate(self.param_names): + if ( + self.stats.depends_on_param(param_name) + and not param_index in self.ignore_param + ): + return True + return False + + def all_relevant_parameters_are_none_or_numeric(self): + for param_index, param_name in enumerate(self.param_names): + if ( + self.stats.depends_on_param(param_name) + and not param_index in self.ignore_param + ): + param_values = list(map(lambda x: x[param_index], self.param_values)) + if not all(map(lambda n: n is None or is_numeric(n), param_values)): + return False + return True + def get_data_for_paramfit_this(self, safe_functions_enabled=False): ret = list() for param_index, param_name in enumerate(self.param_names): |