T
- the type of the function parameters and valuepublic class FieldGradient<T extends CalculusFieldElement<T>> extends Object implements FieldDerivative<T,FieldGradient<T>>
This class is a stripped-down version of FieldDerivativeStructure
with derivation order
limited to one.
It should have less overhead than FieldDerivativeStructure
in its domain.
This class is an implementation of Rall's numbers. Rall's numbers are an extension to the real numbers used throughout mathematical expressions; they hold the derivative together with the value of a function.
FieldGradient
instances can be used directly thanks to
the arithmetic operators to the mathematical functions provided as
methods by this class (+, -, *, /, %, sin, cos ...).
Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
Instances of this class are guaranteed to be immutable.
Constructor and Description |
---|
FieldGradient(FieldDerivativeStructure<T> ds)
Build an instance from a
DerivativeStructure . |
FieldGradient(T value,
T... gradient)
Build an instance with values and derivative.
|
Modifier and Type | Method and Description |
---|---|
FieldGradient<T> |
abs()
absolute value.
|
FieldGradient<T> |
acos()
Arc cosine operation.
|
FieldGradient<T> |
acosh()
Inverse hyperbolic cosine operation.
|
FieldGradient<T> |
add(double a)
'+' operator.
|
FieldGradient<T> |
add(FieldGradient<T> a)
Compute this + a.
|
FieldGradient<T> |
add(T a)
'+' operator.
|
FieldGradient<T> |
asin()
Arc sine operation.
|
FieldGradient<T> |
asinh()
Inverse hyperbolic sine operation.
|
FieldGradient<T> |
atan()
Arc tangent operation.
|
FieldGradient<T> |
atan2(FieldGradient<T> x)
Two arguments arc tangent operation.
|
FieldGradient<T> |
atanh()
Inverse hyperbolic tangent operation.
|
FieldGradient<T> |
cbrt()
Cubic root.
|
FieldGradient<T> |
ceil()
Get the smallest whole number larger than instance.
|
FieldGradient<T> |
compose(T g0,
T g1)
Compute composition of the instance by a function.
|
static <T extends CalculusFieldElement<T>> |
constant(int freeParameters,
T value)
Build an instance corresponding to a constant value.
|
FieldGradient<T> |
copySign(double sign)
Returns the instance with the sign of the argument.
|
FieldGradient<T> |
copySign(FieldGradient<T> sign)
Returns the instance with the sign of the argument.
|
FieldGradient<T> |
copySign(T sign)
Returns the instance with the sign of the argument.
|
FieldGradient<T> |
cos()
Cosine operation.
|
FieldGradient<T> |
cosh()
Hyperbolic cosine operation.
|
FieldGradient<T> |
divide(double a)
'÷' operator.
|
FieldGradient<T> |
divide(FieldGradient<T> a)
Compute this ÷ a.
|
FieldGradient<T> |
divide(T a)
'÷' operator.
|
boolean |
equals(Object other)
Test for the equality of two univariate derivatives.
|
FieldGradient<T> |
exp()
Exponential.
|
FieldGradient<T> |
expm1()
Exponential minus 1.
|
FieldGradient<T> |
floor()
Get the largest whole number smaller than instance.
|
int |
getExponent()
Return the exponent of the instance, removing the bias.
|
FieldGradientField<T> |
getField()
Get the
Field to which the instance belongs. |
int |
getFreeParameters()
Get the number of free parameters.
|
T[] |
getGradient()
Get the gradient part of the function.
|
int |
getOrder()
Get the derivation order.
|
T |
getPartialDerivative(int... orders)
Get a partial derivative.
|
T |
getPartialDerivative(int n)
Get the partial derivative with respect to one parameter.
|
FieldGradient<T> |
getPi()
Get the Archimedes constant π.
|
double |
getReal()
Get the real value of the number.
|
T |
getValue()
Get the value part of the function.
|
Field<T> |
getValueField()
Get the
Field the value and parameters of the function belongs to. |
int |
hashCode()
Get a hashCode for the univariate derivative.
|
FieldGradient<T> |
hypot(FieldGradient<T> y)
Returns the hypotenuse of a triangle with sides
this and y
- sqrt(this2 +y2)
avoiding intermediate overflow or underflow. |
FieldGradient<T> |
linearCombination(double[] a,
FieldGradient<T>[] b)
Compute a linear combination.
|
FieldGradient<T> |
linearCombination(double a1,
FieldGradient<T> b1,
double a2,
FieldGradient<T> b2)
Compute a linear combination.
|
FieldGradient<T> |
linearCombination(double a1,
FieldGradient<T> b1,
double a2,
FieldGradient<T> b2,
double a3,
FieldGradient<T> b3)
Compute a linear combination.
|
FieldGradient<T> |
linearCombination(double a1,
FieldGradient<T> b1,
double a2,
FieldGradient<T> b2,
double a3,
FieldGradient<T> b3,
double a4,
FieldGradient<T> b4)
Compute a linear combination.
|
FieldGradient<T> |
linearCombination(FieldGradient<T>[] a,
FieldGradient<T>[] b)
Compute a linear combination.
|
FieldGradient<T> |
linearCombination(FieldGradient<T> a1,
FieldGradient<T> b1,
FieldGradient<T> a2,
FieldGradient<T> b2)
Compute a linear combination.
|
FieldGradient<T> |
linearCombination(FieldGradient<T> a1,
FieldGradient<T> b1,
FieldGradient<T> a2,
FieldGradient<T> b2,
FieldGradient<T> a3,
FieldGradient<T> b3)
Compute a linear combination.
|
FieldGradient<T> |
linearCombination(FieldGradient<T> a1,
FieldGradient<T> b1,
FieldGradient<T> a2,
FieldGradient<T> b2,
FieldGradient<T> a3,
FieldGradient<T> b3,
FieldGradient<T> a4,
FieldGradient<T> b4)
Compute a linear combination.
|
FieldGradient<T> |
linearCombination(T[] a,
FieldGradient<T>[] b)
Compute a linear combination.
|
FieldGradient<T> |
linearCombination(T a1,
FieldGradient<T> b1,
T a2,
FieldGradient<T> b2,
T a3,
FieldGradient<T> b3)
Compute a linear combination.
|
FieldGradient<T> |
log()
Natural logarithm.
|
FieldGradient<T> |
log10()
Base 10 logarithm.
|
FieldGradient<T> |
log1p()
Shifted natural logarithm.
|
FieldGradient<T> |
multiply(double a)
'×' operator.
|
FieldGradient<T> |
multiply(FieldGradient<T> a)
Compute this × a.
|
FieldGradient<T> |
multiply(int n)
Compute n × this.
|
FieldGradient<T> |
multiply(T n)
'×' operator.
|
FieldGradient<T> |
negate()
Returns the additive inverse of
this element. |
FieldGradient<T> |
newInstance(double c)
Create an instance corresponding to a constant real value.
|
FieldGradient<T> |
newInstance(T c)
Create an instance corresponding to a constant real value.
|
FieldGradient<T> |
pow(double p)
Power operation.
|
static <T extends CalculusFieldElement<T>> |
pow(double a,
FieldGradient<T> x)
Compute ax where a is a double and x a
FieldGradient |
FieldGradient<T> |
pow(FieldGradient<T> e)
Power operation.
|
FieldGradient<T> |
pow(int n)
Integer power operation.
|
FieldGradient<T> |
reciprocal()
Returns the multiplicative inverse of
this element. |
FieldGradient<T> |
remainder(double a)
IEEE remainder operator.
|
FieldGradient<T> |
remainder(FieldGradient<T> a)
IEEE remainder operator.
|
FieldGradient<T> |
remainder(T a)
IEEE remainder operator.
|
FieldGradient<T> |
rint()
Get the whole number that is the nearest to the instance, or the even one if x is exactly half way between two integers.
|
FieldGradient<T> |
rootN(int n)
Nth root.
|
FieldGradient<T> |
scalb(int n)
Multiply the instance by a power of 2.
|
FieldGradient<T> |
sign()
Compute the sign of the instance.
|
FieldGradient<T> |
sin()
Sine operation.
|
FieldSinCos<FieldGradient<T>> |
sinCos()
Combined Sine and Cosine operation.
|
FieldGradient<T> |
sinh()
Hyperbolic sine operation.
|
FieldSinhCosh<FieldGradient<T>> |
sinhCosh()
Combined hyperbolic sine and sosine operation.
|
FieldGradient<T> |
sqrt()
Square root.
|
FieldGradient<T> |
subtract(double a)
'-' operator.
|
FieldGradient<T> |
subtract(FieldGradient<T> a)
Compute this - a.
|
FieldGradient<T> |
subtract(T a)
'-' operator.
|
FieldGradient<T> |
tan()
Tangent operation.
|
FieldGradient<T> |
tanh()
Hyperbolic tangent operation.
|
T |
taylor(double... delta)
Evaluate Taylor expansion of a gradient.
|
T |
taylor(T... delta)
Evaluate Taylor expansion of a gradient.
|
FieldGradient<T> |
toDegrees()
Convert radians to degrees, with error of less than 0.5 ULP
|
FieldDerivativeStructure<T> |
toDerivativeStructure()
Convert the instance to a
FieldDerivativeStructure . |
FieldGradient<T> |
toRadians()
Convert degrees to radians, with error of less than 0.5 ULP
|
FieldGradient<T> |
ulp()
Compute least significant bit (Unit in Last Position) for a number.
|
static <T extends CalculusFieldElement<T>> |
variable(int freeParameters,
int index,
T value)
Build a
Gradient representing a variable. |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
isFinite, isInfinite, isNaN, norm, round
isZero
@SafeVarargs public FieldGradient(T value, T... gradient)
value
- value of the functiongradient
- gradient of the functionpublic FieldGradient(FieldDerivativeStructure<T> ds) throws MathIllegalArgumentException
DerivativeStructure
.ds
- derivative structureMathIllegalArgumentException
- if ds
order
is not 1public static <T extends CalculusFieldElement<T>> FieldGradient<T> constant(int freeParameters, T value)
T
- the type of the function parameters and valuefreeParameters
- number of free parameters (i.e. dimension of the gradient)value
- constant value of the functionFieldGradient
with a constant value and all derivatives set to 0.0public static <T extends CalculusFieldElement<T>> FieldGradient<T> variable(int freeParameters, int index, T value)
Gradient
representing a variable.
Instances built using this method are considered to be the free variables with respect to which differentials are computed. As such, their differential with respect to themselves is +1.
T
- the type of the function parameters and valuefreeParameters
- number of free parameters (i.e. dimension of the gradient)index
- index of the variable (from 0 to getFreeParameters()
- 1)value
- value of the variableFieldGradient
with a constant value and all derivatives set to 0.0 except the
one at index
which will be set to 1.0public Field<T> getValueField()
Field
the value and parameters of the function belongs to.Field
the value and parameters of the function belongs topublic FieldGradient<T> newInstance(double c)
newInstance
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
c
- constant real valuepublic FieldGradient<T> newInstance(T c)
The default implementation creates the instance by adding
the value to getField().getZero()
. This is not optimal
and does not work when called with a negative zero as the
sign of zero is lost with the addition. The default implementation
should therefore be overridden in concrete classes. The default
implementation will be removed at the next major version.
c
- constant real valuepublic double getReal()
getReal
in interface FieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public T getValue()
getValue
in interface FieldDerivative<T extends CalculusFieldElement<T>,FieldGradient<T extends CalculusFieldElement<T>>>
public T[] getGradient()
public int getFreeParameters()
getFreeParameters
in interface FieldDerivative<T extends CalculusFieldElement<T>,FieldGradient<T extends CalculusFieldElement<T>>>
public int getOrder()
getOrder
in interface FieldDerivative<T extends CalculusFieldElement<T>,FieldGradient<T extends CalculusFieldElement<T>>>
public T getPartialDerivative(int... orders) throws MathIllegalArgumentException
getPartialDerivative
in interface FieldDerivative<T extends CalculusFieldElement<T>,FieldGradient<T extends CalculusFieldElement<T>>>
orders
- derivation orders with respect to each variable (if all orders are 0,
the value is returned)MathIllegalArgumentException
- if the numbers of variables does not
match the instanceFieldDerivative.getValue()
public T getPartialDerivative(int n) throws MathIllegalArgumentException
n
- index of the parameter (counting from 0)MathIllegalArgumentException
- if n is either negative or larger
or equal to getFreeParameters()
public FieldDerivativeStructure<T> toDerivativeStructure()
FieldDerivativeStructure
.public FieldGradient<T> add(T a)
a
- right hand side parameter of the operatorpublic FieldGradient<T> add(double a)
add
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorpublic FieldGradient<T> add(FieldGradient<T> a)
add
in interface FieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- element to addpublic FieldGradient<T> subtract(T a)
a
- right hand side parameter of the operatorpublic FieldGradient<T> subtract(double a)
subtract
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorpublic FieldGradient<T> subtract(FieldGradient<T> a)
subtract
in interface FieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- element to subtractpublic FieldGradient<T> multiply(T n)
n
- right hand side parameter of the operatorpublic FieldGradient<T> multiply(int n)
multiply
in interface FieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
n
- Number of times this
must be added to itself.public FieldGradient<T> multiply(double a)
multiply
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorpublic FieldGradient<T> multiply(FieldGradient<T> a)
multiply
in interface FieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- element to multiplypublic FieldGradient<T> divide(T a)
a
- right hand side parameter of the operatorpublic FieldGradient<T> divide(double a)
divide
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorpublic FieldGradient<T> divide(FieldGradient<T> a)
divide
in interface FieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- element to divide bypublic FieldGradient<T> remainder(T a)
a
- right hand side parameter of the operatorpublic FieldGradient<T> remainder(double a)
remainder
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorpublic FieldGradient<T> remainder(FieldGradient<T> a)
remainder
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorpublic FieldGradient<T> negate()
this
element.negate
in interface FieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
this
.public FieldGradient<T> abs()
Just another name for CalculusFieldElement.norm()
abs
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> ceil()
ceil
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> floor()
floor
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> rint()
rint
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> sign()
sign
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> copySign(T sign)
sign
argument is treated as positive.sign
- the sign for the returned valuesign
argumentpublic FieldGradient<T> copySign(FieldGradient<T> sign)
sign
argument is treated as positive.copySign
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
sign
- the sign for the returned valuesign
argumentpublic FieldGradient<T> copySign(double sign)
sign
argument is treated as positive.copySign
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
sign
- the sign for the returned valuesign
argumentpublic int getExponent()
For double numbers of the form 2x, the unbiased exponent is exactly x.
getExponent
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> scalb(int n)
scalb
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
n
- power of 2public FieldGradient<T> ulp()
The ulp
function is a step function, hence all its derivatives are 0.
ulp
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> hypot(FieldGradient<T> y)
this
and y
- sqrt(this2 +y2)
avoiding intermediate overflow or underflow.
hypot
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
y
- a valuepublic FieldGradient<T> reciprocal()
this
element.reciprocal
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
reciprocal
in interface FieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
this
.public FieldGradient<T> compose(T g0, T g1)
g0
- value of the function at the current point (i.e. at g(getValue())
)g1
- first derivative of the function at the current point (i.e. at g'(getValue())
)public FieldGradient<T> sqrt()
sqrt
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> cbrt()
cbrt
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> rootN(int n)
rootN
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
n
- order of the rootpublic FieldGradientField<T> getField()
Field
to which the instance belongs.getField
in interface FieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
Field
to which the instance belongspublic static <T extends CalculusFieldElement<T>> FieldGradient<T> pow(double a, FieldGradient<T> x)
FieldGradient
T
- the type of the function parameters and valuea
- number to exponentiatex
- power to applypublic FieldGradient<T> pow(double p)
pow
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
p
- power to applypublic FieldGradient<T> pow(int n)
pow
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
n
- power to applypublic FieldGradient<T> pow(FieldGradient<T> e)
pow
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
e
- exponentpublic FieldGradient<T> exp()
exp
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> expm1()
expm1
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> log()
log
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> log1p()
log1p
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> log10()
log10
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> cos()
cos
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> sin()
sin
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldSinCos<FieldGradient<T>> sinCos()
sinCos
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> tan()
tan
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> acos()
acos
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> asin()
asin
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> atan()
atan
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> atan2(FieldGradient<T> x)
Beware of the order or arguments! As this is based on a
two-arguments functions, in order to be consistent with
arguments order, the instance is the first argument
and the single provided argument is the second argument.
In order to be consistent with programming languages atan2
,
this method computes atan2(this, x)
, i.e. the instance
represents the y
argument and the x
argument is
the one passed as a single argument. This may seem confusing especially
for users of Wolfram alpha, as this site is not consistent
with programming languages atan2
two-arguments arc tangent
and puts x
as its first argument.
atan2
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
x
- second argument of the arc tangentpublic FieldGradient<T> cosh()
cosh
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> sinh()
sinh
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldSinhCosh<FieldGradient<T>> sinhCosh()
sinhCosh
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> tanh()
tanh
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> acosh()
acosh
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> asinh()
asinh
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> atanh()
atanh
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> toDegrees()
toDegrees
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public FieldGradient<T> toRadians()
toRadians
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public T taylor(double... delta)
delta
- parameters offsets (Δx, Δy, ...)public T taylor(T... delta)
delta
- parameters offsets (Δx, Δy, ...)public FieldGradient<T> linearCombination(FieldGradient<T>[] a, FieldGradient<T>[] b)
linearCombination
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- Factors.b
- Factors.Σi ai bi
.public FieldGradient<T> linearCombination(T[] a, FieldGradient<T>[] b)
a
- Factors.b
- Factors.Σi ai bi
.MathIllegalArgumentException
- if arrays dimensions don't matchpublic FieldGradient<T> linearCombination(double[] a, FieldGradient<T>[] b)
linearCombination
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a
- Factors.b
- Factors.Σi ai bi
.public FieldGradient<T> linearCombination(FieldGradient<T> a1, FieldGradient<T> b1, FieldGradient<T> a2, FieldGradient<T> b2)
linearCombination
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a1
- first factor of the first termb1
- second factor of the first terma2
- first factor of the second termb2
- second factor of the second termCalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement)
,
CalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement)
public FieldGradient<T> linearCombination(double a1, FieldGradient<T> b1, double a2, FieldGradient<T> b2)
linearCombination
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a1
- first factor of the first termb1
- second factor of the first terma2
- first factor of the second termb2
- second factor of the second termCalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement, double, FieldElement)
,
CalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement, double, FieldElement, double, FieldElement)
public FieldGradient<T> linearCombination(FieldGradient<T> a1, FieldGradient<T> b1, FieldGradient<T> a2, FieldGradient<T> b2, FieldGradient<T> a3, FieldGradient<T> b3)
linearCombination
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a1
- first factor of the first termb1
- second factor of the first terma2
- first factor of the second termb2
- second factor of the second terma3
- first factor of the third termb3
- second factor of the third termCalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement)
,
CalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement)
public FieldGradient<T> linearCombination(T a1, FieldGradient<T> b1, T a2, FieldGradient<T> b2, T a3, FieldGradient<T> b3)
a1
- first factor of the first termb1
- second factor of the first terma2
- first factor of the second termb2
- second factor of the second terma3
- first factor of the third termb3
- second factor of the third termMathIllegalArgumentException
- if number of free parameters or orders are inconsistentlinearCombination(double, FieldGradient, double, FieldGradient)
,
linearCombination(double, FieldGradient, double, FieldGradient, double, FieldGradient, double, FieldGradient)
public FieldGradient<T> linearCombination(double a1, FieldGradient<T> b1, double a2, FieldGradient<T> b2, double a3, FieldGradient<T> b3)
linearCombination
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a1
- first factor of the first termb1
- second factor of the first terma2
- first factor of the second termb2
- second factor of the second terma3
- first factor of the third termb3
- second factor of the third termCalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement)
,
CalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement, double, FieldElement, double, FieldElement)
public FieldGradient<T> linearCombination(FieldGradient<T> a1, FieldGradient<T> b1, FieldGradient<T> a2, FieldGradient<T> b2, FieldGradient<T> a3, FieldGradient<T> b3, FieldGradient<T> a4, FieldGradient<T> b4)
linearCombination
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a1
- first factor of the first termb1
- second factor of the first terma2
- first factor of the second termb2
- second factor of the second terma3
- first factor of the third termb3
- second factor of the third terma4
- first factor of the fourth termb4
- second factor of the fourth termCalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement)
,
CalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement)
public FieldGradient<T> linearCombination(double a1, FieldGradient<T> b1, double a2, FieldGradient<T> b2, double a3, FieldGradient<T> b3, double a4, FieldGradient<T> b4)
linearCombination
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
a1
- first factor of the first termb1
- second factor of the first terma2
- first factor of the second termb2
- second factor of the second terma3
- first factor of the third termb3
- second factor of the third terma4
- first factor of the fourth termb4
- second factor of the fourth termCalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement)
,
CalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement, double, FieldElement)
public FieldGradient<T> getPi()
Archimedes constant is the ratio of a circle's circumference to its diameter.
getPi
in interface CalculusFieldElement<FieldGradient<T extends CalculusFieldElement<T>>>
public boolean equals(Object other)
univariate derivatives are considered equal if they have the same derivatives.
Copyright © 2016-2021 CS GROUP. All rights reserved.