Compute parameter with temporary value
This commit is contained in:
@@ -484,16 +484,18 @@ class Parameters:
|
|||||||
param["version"] = __version__
|
param["version"] = __version__
|
||||||
return param
|
return param
|
||||||
|
|
||||||
def compute(self, p_name: str, *other_p_names: str) -> Any | tuple[Any]:
|
def compute(self, p_name: str, *other_p_names: str, **with_values: Any) -> Any | tuple[Any]:
|
||||||
"""
|
"""
|
||||||
compute a single or a set of value
|
compute a single or a set of value
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
p_name : str
|
p_name : str, positional only
|
||||||
parameter to compute
|
parameter to compute0
|
||||||
other_p_names : str
|
other_p_names : str, positional only
|
||||||
other parameters to compute
|
other parameters to compute
|
||||||
|
with_values : Any, keyword only
|
||||||
|
compute the desired parameters as if self is updated with `with_values`.
|
||||||
|
|
||||||
Returns
|
Returns
|
||||||
-------
|
-------
|
||||||
@@ -501,8 +503,18 @@ class Parameters:
|
|||||||
returns the computed `p_name` directly
|
returns the computed `p_name` directly
|
||||||
else
|
else
|
||||||
returns a tuple of corresponding values to (p_name, other_p_names[0], ...)
|
returns a tuple of corresponding values to (p_name, other_p_names[0], ...)
|
||||||
|
|
||||||
|
Examples
|
||||||
|
--------
|
||||||
|
>>> params = Parameters(width=5e-10, shape="gaussian", gamma=1, beta2=5e-20)
|
||||||
|
>>> base_power = params.compute("peak_power", soliton_num=2)
|
||||||
|
>>> print(base_power)
|
||||||
|
>>> print(params.soliton_num)
|
||||||
|
1.1090354888959124
|
||||||
|
None
|
||||||
"""
|
"""
|
||||||
evaluator = self.get_evaluator()
|
evaluator = self.get_evaluator()
|
||||||
|
evaluator.set(**with_values)
|
||||||
first = evaluator.compute(p_name)
|
first = evaluator.compute(p_name)
|
||||||
if other_p_names:
|
if other_p_names:
|
||||||
return (first, *(evaluator.compute(p) for p in other_p_names))
|
return (first, *(evaluator.compute(p) for p in other_p_names))
|
||||||
|
|||||||
Reference in New Issue
Block a user