Math¶
- class pathsim.blocks.math.Math[source]¶
Bases:
BlockBase math block.
Note
This block doesnt implement any functionality itself. Its intended to be used as a base for the elementary math blocks. Its not intended to be used directly!
- class pathsim.blocks.math.Sin[source]¶
Bases:
MathSine operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \sin(\vec{u})\]
- class pathsim.blocks.math.Cos[source]¶
Bases:
MathCosine operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \cos(\vec{u})\]
- class pathsim.blocks.math.Sqrt[source]¶
Bases:
MathSquare root operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \sqrt{|\vec{u}|}\]
- class pathsim.blocks.math.Abs[source]¶
Bases:
MathAbsolute value operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \vert| \vec{u} \vert|\]
- class pathsim.blocks.math.Pow(exponent=2)[source]¶
Bases:
MathRaise to power operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \vec{u}^{p}\]- Parameters:
exponent (float, array_like) – exponent to raise the input to the power of
- class pathsim.blocks.math.PowProd(exponents=2)[source]¶
Bases:
MathPower-Product operator block.
This block raises each input to a power and then multiplies all results together:
\[y = \prod_i u_i^{p_i}\]- Parameters:
exponents (float, array_like) – exponent(s) to raise the inputs to the power of. If scalar, applies same exponent to all inputs.
- class pathsim.blocks.math.Exp[source]¶
Bases:
MathExponential operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = e^{\vec{u}}\]
- class pathsim.blocks.math.Log[source]¶
Bases:
MathNatural logarithm operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \ln(\vec{u})\]
- class pathsim.blocks.math.Log10[source]¶
Bases:
MathBase-10 logarithm operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \log_{10}(\vec{u})\]
- class pathsim.blocks.math.Tan[source]¶
Bases:
MathTangent operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \tan(\vec{u})\]
- class pathsim.blocks.math.Sinh[source]¶
Bases:
MathHyperbolic sine operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \sinh(\vec{u})\]
- class pathsim.blocks.math.Cosh[source]¶
Bases:
MathHyperbolic cosine operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \cosh(\vec{u})\]
- class pathsim.blocks.math.Tanh[source]¶
Bases:
MathHyperbolic tangent operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \tanh(\vec{u})\]
- class pathsim.blocks.math.Atan[source]¶
Bases:
MathArctangent operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \arctan(\vec{u})\]
- class pathsim.blocks.math.Norm[source]¶
Bases:
MathVector norm operator block.
This block computes the Euclidean norm of the input vector:
\[y = \|\vec{u}\|_2 = \sqrt{\sum_i u_i^2}\]
- class pathsim.blocks.math.Mod(modulus=1.0)[source]¶
Bases:
MathModulo operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \vec{u} \bmod m\]Note
modulo is not differentiable at discontinuities
- Parameters:
modulus (float) – modulus value
- class pathsim.blocks.math.Clip(min_val=-1.0, max_val=1.0)[source]¶
Bases:
MathClipping/saturation operator block.
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \text{clip}(\vec{u}, u_{min}, u_{max})\]- Parameters:
- class pathsim.blocks.math.Matrix(A=array([[1.]]))[source]¶
Bases:
MathLinear matrix operation (matrix-vector product).
This block supports vector inputs. This is the operation it does:
\[\vec{y} = \mathbf{A} \vec{u}\]- Parameters:
A (np.ndarray) – matrix, 2d array with dim=2
- class pathsim.blocks.math.Atan2[source]¶
Bases:
BlockTwo-argument arctangent block.
Computes the four-quadrant arctangent of two inputs:
\[y = \mathrm{atan2}(a, b)\]Note
This block takes exactly two inputs (a, b) and produces one output. The first input is the y-coordinate, the second is the x-coordinate, matching the convention of
numpy.arctan2(y, x).- input_port_labels = {'a': 0, 'b': 1}¶
- output_port_labels = {'y': 0}¶
- class pathsim.blocks.math.Rescale(i0=0.0, i1=1.0, o0=0.0, o1=1.0, saturate=False)[source]¶
Bases:
MathLinear rescaling / mapping block.
Maps the input linearly from range
[i0, i1]to range[o0, o1]. Optionally saturates the output to[o0, o1].\[y = o_0 + \frac{(x - i_0) \cdot (o_1 - o_0)}{i_1 - i_0}\]This block supports vector inputs.
- Parameters:
- property i0¶
- property i1¶
- property o0¶
- property o1¶
- property saturate¶