T
- the type of the field elementspublic class FieldDerivativeStructure<T extends CalculusFieldElement<T>> extends Object implements FieldDerivative<T,FieldDerivativeStructure<T>>
This class is similar to DerivativeStructure
except function
parameters and value can be any CalculusFieldElement
.
Instances of this class are guaranteed to be immutable.
DerivativeStructure
,
FDSFactory
,
DSCompiler
Modifier and Type | Method and Description |
---|---|
FieldDerivativeStructure<T> |
abs()
absolute value.
|
FieldDerivativeStructure<T> |
acos()
Arc cosine operation.
|
FieldDerivativeStructure<T> |
acosh()
Inverse hyperbolic cosine operation.
|
FieldDerivativeStructure<T> |
add(double a)
'+' operator.
|
FieldDerivativeStructure<T> |
add(FieldDerivativeStructure<T> a)
Compute this + a.
|
FieldDerivativeStructure<T> |
add(T a)
'+' operator.
|
FieldDerivativeStructure<T> |
asin()
Arc sine operation.
|
FieldDerivativeStructure<T> |
asinh()
Inverse hyperbolic sine operation.
|
FieldDerivativeStructure<T> |
atan()
Arc tangent operation.
|
FieldDerivativeStructure<T> |
atan2(FieldDerivativeStructure<T> x)
Two arguments arc tangent operation.
|
static <T extends CalculusFieldElement<T>> |
atan2(FieldDerivativeStructure<T> y,
FieldDerivativeStructure<T> x)
Two arguments arc tangent operation.
|
FieldDerivativeStructure<T> |
atanh()
Inverse hyperbolic tangent operation.
|
FieldDerivativeStructure<T> |
cbrt()
Cubic root.
|
FieldDerivativeStructure<T> |
ceil()
Get the smallest whole number larger than instance.
|
FieldDerivativeStructure<T> |
compose(double... f)
Compute composition of the instance by a univariate function.
|
FieldDerivativeStructure<T> |
compose(T... f)
Compute composition of the instance by a univariate function.
|
FieldDerivativeStructure<T> |
copySign(double sign)
Returns the instance with the sign of the argument.
|
FieldDerivativeStructure<T> |
copySign(FieldDerivativeStructure<T> sign)
Returns the instance with the sign of the argument.
|
FieldDerivativeStructure<T> |
copySign(T sign)
Returns the instance with the sign of the argument.
|
FieldDerivativeStructure<T> |
cos()
Cosine operation.
|
FieldDerivativeStructure<T> |
cosh()
Hyperbolic cosine operation.
|
FieldDerivativeStructure<T> |
differentiate(int varIndex,
int differentiationOrder)
Differentiate w.r.t.
|
FieldDerivativeStructure<T> |
divide(double a)
'÷' operator.
|
FieldDerivativeStructure<T> |
divide(FieldDerivativeStructure<T> a)
Compute this ÷ a.
|
FieldDerivativeStructure<T> |
divide(T a)
'÷' operator.
|
FieldDerivativeStructure<T> |
exp()
Exponential.
|
FieldDerivativeStructure<T> |
expm1()
Exponential minus 1.
|
FieldDerivativeStructure<T> |
floor()
Get the largest whole number smaller than instance.
|
T[] |
getAllDerivatives()
Get all partial derivatives.
|
int |
getExponent()
Return the exponent of the instance value, removing the bias.
|
FDSFactory<T> |
getFactory()
Get the factory that built the instance.
|
Field<FieldDerivativeStructure<T>> |
getField()
Get the
Field to which the instance belongs. |
int |
getFreeParameters()
Get the number of free parameters.
|
int |
getOrder()
Get the derivation order.
|
T |
getPartialDerivative(int... orders)
Get a partial derivative.
|
FieldDerivativeStructure<T> |
getPi()
Get the Archimedes constant π.
|
double |
getReal()
Get the real value of the number.
|
T |
getValue()
Get the value part of the derivative structure.
|
FieldDerivativeStructure<T> |
hypot(FieldDerivativeStructure<T> y)
Returns the hypotenuse of a triangle with sides
this and y
- sqrt(this2 +y2)
avoiding intermediate overflow or underflow. |
static <T extends CalculusFieldElement<T>> |
hypot(FieldDerivativeStructure<T> x,
FieldDerivativeStructure<T> y)
Returns the hypotenuse of a triangle with sides
x and y
- sqrt(x2 +y2)
avoiding intermediate overflow or underflow. |
FieldDerivativeStructure<T> |
integrate(int varIndex,
int integrationOrder)
Integrate w.r.t.
|
FieldDerivativeStructure<T> |
linearCombination(double[] a,
FieldDerivativeStructure<T>[] b)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
linearCombination(double a1,
FieldDerivativeStructure<T> b1,
double a2,
FieldDerivativeStructure<T> b2)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
linearCombination(double a1,
FieldDerivativeStructure<T> b1,
double a2,
FieldDerivativeStructure<T> b2,
double a3,
FieldDerivativeStructure<T> b3)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
linearCombination(double a1,
FieldDerivativeStructure<T> b1,
double a2,
FieldDerivativeStructure<T> b2,
double a3,
FieldDerivativeStructure<T> b3,
double a4,
FieldDerivativeStructure<T> b4)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
linearCombination(FieldDerivativeStructure<T>[] a,
FieldDerivativeStructure<T>[] b)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
linearCombination(FieldDerivativeStructure<T> a1,
FieldDerivativeStructure<T> b1,
FieldDerivativeStructure<T> a2,
FieldDerivativeStructure<T> b2)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
linearCombination(FieldDerivativeStructure<T> a1,
FieldDerivativeStructure<T> b1,
FieldDerivativeStructure<T> a2,
FieldDerivativeStructure<T> b2,
FieldDerivativeStructure<T> a3,
FieldDerivativeStructure<T> b3)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
linearCombination(FieldDerivativeStructure<T> a1,
FieldDerivativeStructure<T> b1,
FieldDerivativeStructure<T> a2,
FieldDerivativeStructure<T> b2,
FieldDerivativeStructure<T> a3,
FieldDerivativeStructure<T> b3,
FieldDerivativeStructure<T> a4,
FieldDerivativeStructure<T> b4)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
linearCombination(T[] a,
FieldDerivativeStructure<T>[] b)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
linearCombination(T a1,
FieldDerivativeStructure<T> b1,
T a2,
FieldDerivativeStructure<T> b2)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
linearCombination(T a1,
FieldDerivativeStructure<T> b1,
T a2,
FieldDerivativeStructure<T> b2,
T a3,
FieldDerivativeStructure<T> b3)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
linearCombination(T a1,
FieldDerivativeStructure<T> b1,
T a2,
FieldDerivativeStructure<T> b2,
T a3,
FieldDerivativeStructure<T> b3,
T a4,
FieldDerivativeStructure<T> b4)
Compute a linear combination.
|
FieldDerivativeStructure<T> |
log()
Natural logarithm.
|
FieldDerivativeStructure<T> |
log10()
Base 10 logarithm.
|
FieldDerivativeStructure<T> |
log1p()
Shifted natural logarithm.
|
FieldDerivativeStructure<T> |
multiply(double a)
'×' operator.
|
FieldDerivativeStructure<T> |
multiply(FieldDerivativeStructure<T> a)
Compute this × a.
|
FieldDerivativeStructure<T> |
multiply(int n)
Compute n × this.
|
FieldDerivativeStructure<T> |
multiply(T a)
'×' operator.
|
FieldDerivativeStructure<T> |
negate()
Returns the additive inverse of
this element. |
FieldDerivativeStructure<T> |
newInstance(double value)
Create an instance corresponding to a constant real value.
|
FieldDerivativeStructure<T> |
pow(double p)
Power operation.
|
static <T extends CalculusFieldElement<T>> |
pow(double a,
FieldDerivativeStructure<T> x)
Compute ax where a is a double and x a
FieldDerivativeStructure |
FieldDerivativeStructure<T> |
pow(FieldDerivativeStructure<T> e)
Power operation.
|
FieldDerivativeStructure<T> |
pow(int n)
Integer power operation.
|
FieldDerivativeStructure<T> |
rebase(FieldDerivativeStructure<T>... p)
Rebase instance with respect to low level parameter functions.
|
FieldDerivativeStructure<T> |
reciprocal()
Returns the multiplicative inverse of
this element. |
FieldDerivativeStructure<T> |
remainder(double a)
IEEE remainder operator.
|
FieldDerivativeStructure<T> |
remainder(FieldDerivativeStructure<T> a)
IEEE remainder operator.
|
FieldDerivativeStructure<T> |
remainder(T a)
IEEE remainder operator.
|
FieldDerivativeStructure<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.
|
FieldDerivativeStructure<T> |
rootN(int n)
Nth root.
|
FieldDerivativeStructure<T> |
scalb(int n)
Multiply the instance by a power of 2.
|
FieldDerivativeStructure<T> |
sign()
Compute the sign of the instance.
|
FieldDerivativeStructure<T> |
sin()
Sine operation.
|
FieldSinCos<FieldDerivativeStructure<T>> |
sinCos()
Combined Sine and Cosine operation.
|
FieldDerivativeStructure<T> |
sinh()
Hyperbolic sine operation.
|
FieldSinhCosh<FieldDerivativeStructure<T>> |
sinhCosh()
Combined hyperbolic sine and sosine operation.
|
FieldDerivativeStructure<T> |
sqrt()
Square root.
|
FieldDerivativeStructure<T> |
subtract(double a)
'-' operator.
|
FieldDerivativeStructure<T> |
subtract(FieldDerivativeStructure<T> a)
Compute this - a.
|
FieldDerivativeStructure<T> |
subtract(T a)
'-' operator.
|
FieldDerivativeStructure<T> |
tan()
Tangent operation.
|
FieldDerivativeStructure<T> |
tanh()
Hyperbolic tangent operation.
|
T |
taylor(double... delta)
Evaluate Taylor expansion of a derivative structure.
|
T |
taylor(T... delta)
Evaluate Taylor expansion of a derivative structure.
|
FieldDerivativeStructure<T> |
toDegrees()
Convert radians to degrees, with error of less than 0.5 ULP
|
FieldDerivativeStructure<T> |
toRadians()
Convert degrees to radians, with error of less than 0.5 ULP
|
FieldDerivativeStructure<T> |
ulp()
Compute least significant bit (Unit in Last Position) for a number.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
isFinite, isInfinite, isNaN, norm, round
isZero
public FieldDerivativeStructure<T> newInstance(double value)
newInstance
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
value
- constant real valuepublic FDSFactory<T> getFactory()
public int getFreeParameters()
FieldDerivative
getFreeParameters
in interface FieldDerivative<T extends CalculusFieldElement<T>,FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public int getOrder()
FieldDerivative
getOrder
in interface FieldDerivative<T extends CalculusFieldElement<T>,FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public double getReal()
getReal
in interface FieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public T getValue()
getValue
in interface FieldDerivative<T extends CalculusFieldElement<T>,FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
getPartialDerivative(int...)
public T getPartialDerivative(int... orders) throws MathIllegalArgumentException
getPartialDerivative
in interface FieldDerivative<T extends CalculusFieldElement<T>,FieldDerivativeStructure<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[] getAllDerivatives()
DSCompiler.getPartialDerivativeIndex(int...)
public FieldDerivativeStructure<T> add(T a)
a
- right hand side parameter of the operatorpublic FieldDerivativeStructure<T> add(double a)
add
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorpublic FieldDerivativeStructure<T> add(FieldDerivativeStructure<T> a) throws MathIllegalArgumentException
add
in interface FieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- element to addMathIllegalArgumentException
- if number of free parameters
or orders do not matchpublic FieldDerivativeStructure<T> subtract(T a)
a
- right hand side parameter of the operatorpublic FieldDerivativeStructure<T> subtract(double a)
subtract
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorpublic FieldDerivativeStructure<T> subtract(FieldDerivativeStructure<T> a) throws MathIllegalArgumentException
subtract
in interface FieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- element to subtractMathIllegalArgumentException
- if number of free parameters
or orders do not matchpublic FieldDerivativeStructure<T> multiply(T a)
a
- right hand side parameter of the operatorpublic FieldDerivativeStructure<T> multiply(int n)
multiply
in interface FieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
n
- Number of times this
must be added to itself.public FieldDerivativeStructure<T> multiply(double a)
multiply
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorpublic FieldDerivativeStructure<T> multiply(FieldDerivativeStructure<T> a) throws MathIllegalArgumentException
multiply
in interface FieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- element to multiplyMathIllegalArgumentException
- if number of free parameters
or orders do not matchpublic FieldDerivativeStructure<T> divide(T a)
a
- right hand side parameter of the operatorpublic FieldDerivativeStructure<T> divide(double a)
divide
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorpublic FieldDerivativeStructure<T> divide(FieldDerivativeStructure<T> a) throws MathIllegalArgumentException
divide
in interface FieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- element to divide byMathIllegalArgumentException
- if number of free parameters
or orders do not matchpublic FieldDerivativeStructure<T> remainder(T a)
a
- right hand side parameter of the operatorpublic FieldDerivativeStructure<T> remainder(double a)
remainder
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorpublic FieldDerivativeStructure<T> remainder(FieldDerivativeStructure<T> a) throws MathIllegalArgumentException
remainder
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- right hand side parameter of the operatorMathIllegalArgumentException
- if number of free parameters
or orders do not matchpublic FieldDerivativeStructure<T> negate()
this
element.negate
in interface FieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
this
.public FieldDerivativeStructure<T> abs()
Just another name for CalculusFieldElement.norm()
abs
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> ceil()
ceil
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> floor()
floor
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> rint()
rint
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> sign()
sign
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> copySign(T sign)
sign
argument is treated as positive.sign
- the sign for the returned valuesign
argumentpublic FieldDerivativeStructure<T> copySign(double sign)
sign
argument is treated as positive.copySign
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
sign
- the sign for the returned valuesign
argumentpublic FieldDerivativeStructure<T> copySign(FieldDerivativeStructure<T> sign)
sign
argument is treated as positive.copySign
in interface CalculusFieldElement<FieldDerivativeStructure<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<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> scalb(int n)
scalb
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
n
- power of 2public FieldDerivativeStructure<T> ulp()
The ulp
function is a step function, hence all its derivatives are 0.
ulp
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> hypot(FieldDerivativeStructure<T> y) throws MathIllegalArgumentException
this
and y
- sqrt(this2 +y2)
avoiding intermediate overflow or underflow.
hypot
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
y
- a valueMathIllegalArgumentException
- if number of free parameters
or orders do not matchpublic static <T extends CalculusFieldElement<T>> FieldDerivativeStructure<T> hypot(FieldDerivativeStructure<T> x, FieldDerivativeStructure<T> y) throws MathIllegalArgumentException
x
and y
- sqrt(x2 +y2)
avoiding intermediate overflow or underflow.
T
- the type of the field elementsx
- a valuey
- a valueMathIllegalArgumentException
- if number of free parameters
or orders do not match@SafeVarargs public final FieldDerivativeStructure<T> compose(T... f) throws MathIllegalArgumentException
f
- array of value and derivatives of the function at
the current point (i.e. [f(getValue()
),
f'(getValue()
), f''(getValue()
)...]).MathIllegalArgumentException
- if the number of derivatives
in the array is not equal to order
+ 1public FieldDerivativeStructure<T> compose(double... f) throws MathIllegalArgumentException
f
- array of value and derivatives of the function at
the current point (i.e. [f(getValue()
),
f'(getValue()
), f''(getValue()
)...]).MathIllegalArgumentException
- if the number of derivatives
in the array is not equal to order
+ 1public FieldDerivativeStructure<T> reciprocal()
this
element.reciprocal
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
reciprocal
in interface FieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
this
.public FieldDerivativeStructure<T> sqrt()
sqrt
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> cbrt()
cbrt
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> rootN(int n)
rootN
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
n
- order of the rootpublic Field<FieldDerivativeStructure<T>> getField()
Field
to which the instance belongs.getField
in interface FieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
Field
to which the instance belongspublic static <T extends CalculusFieldElement<T>> FieldDerivativeStructure<T> pow(double a, FieldDerivativeStructure<T> x)
FieldDerivativeStructure
T
- the type of the field elementsa
- number to exponentiatex
- power to applypublic FieldDerivativeStructure<T> pow(double p)
pow
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
p
- power to applypublic FieldDerivativeStructure<T> pow(int n)
pow
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
n
- power to applypublic FieldDerivativeStructure<T> pow(FieldDerivativeStructure<T> e) throws MathIllegalArgumentException
pow
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
e
- exponentMathIllegalArgumentException
- if number of free parameters
or orders do not matchpublic FieldDerivativeStructure<T> exp()
exp
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> expm1()
expm1
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> log()
log
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> log1p()
log1p
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> log10()
log10
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> cos()
cos
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> sin()
sin
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldSinCos<FieldDerivativeStructure<T>> sinCos()
sinCos
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> tan()
tan
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> acos()
acos
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> asin()
asin
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> atan()
atan
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> atan2(FieldDerivativeStructure<T> x) throws MathIllegalArgumentException
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<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
x
- second argument of the arc tangentMathIllegalArgumentException
- if number of free parameters or orders are inconsistentpublic static <T extends CalculusFieldElement<T>> FieldDerivativeStructure<T> atan2(FieldDerivativeStructure<T> y, FieldDerivativeStructure<T> x) throws MathIllegalArgumentException
T
- the type of the field elementsy
- first argument of the arc tangentx
- second argument of the arc tangentMathIllegalArgumentException
- if number of free parameters
or orders do not matchpublic FieldDerivativeStructure<T> cosh()
cosh
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> sinh()
sinh
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldSinhCosh<FieldDerivativeStructure<T>> sinhCosh()
sinhCosh
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> tanh()
tanh
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> acosh()
acosh
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> asinh()
asinh
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> atanh()
atanh
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> toDegrees()
toDegrees
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> toRadians()
toRadians
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
public FieldDerivativeStructure<T> integrate(int varIndex, int integrationOrder)
Rigorously, if the derivatives of a function are known up to order N, the ones of its M-th integral w.r.t. a given variable (seen as a function itself) are actually known up to order N+M. However, this method still casts the output as a DerivativeStructure of order N. The integration constants are systematically set to zero.
varIndex
- Index of independent variable w.r.t. which integration is done.integrationOrder
- Number of times the integration operator must be applied. If non-positive, call the
differentiation operator.public FieldDerivativeStructure<T> differentiate(int varIndex, int differentiationOrder)
Rigorously, if the derivatives of a function are known up to order N, the ones of its M-th derivative w.r.t. a given variable (seen as a function itself) are only known up to order N-M. However, this method still casts the output as a DerivativeStructure of order N with zeroes for the higher order terms.
varIndex
- Index of independent variable w.r.t. which differentiation is done.differentiationOrder
- Number of times the differentiation operator must be applied. If non-positive, call
the integration operator instead.@SafeVarargs public final T taylor(T... delta) throws MathRuntimeException
delta
- parameters offsets (Δx, Δy, ...)MathRuntimeException
- if factorials becomes too largepublic T taylor(double... delta) throws MathRuntimeException
delta
- parameters offsets (Δx, Δy, ...)MathRuntimeException
- if factorials becomes too largepublic FieldDerivativeStructure<T> rebase(FieldDerivativeStructure<T>... p)
The instance is considered to be a function of n free parameters
up to order o
\(f(p_0, p_1, \ldots p_{n-1})\).
Its partial derivatives
are therefore
\(f, \frac{\partial f}{\partial p_0}, \frac{\partial f}{\partial p_1}, \ldots
\frac{\partial^2 f}{\partial p_0^2}, \frac{\partial^2 f}{\partial p_0 p_1},
\ldots \frac{\partial^o f}{\partial p_{n-1}^o}\). The free parameters
\(p_0, p_1, \ldots p_{n-1}\) are considered to be functions of \(m\) lower
level other parameters \(q_0, q_1, \ldots q_{m-1}\).
This method compute the composition of the partial derivatives of \(f\)
and the partial derivatives of \(p_0, p_1, \ldots p_{n-1}\), i.e. the
partial derivatives
of the value
returned will be
\(f, \frac{\partial f}{\partial q_0}, \frac{\partial f}{\partial q_1}, \ldots
\frac{\partial^2 f}{\partial q_0^2}, \frac{\partial^2 f}{\partial q_0 q_1},
\ldots \frac{\partial^o f}{\partial q_{m-1}^o}\).
The number of parameters must match getFreeParameters()
and the
derivation orders of the instance and parameters must also match.
p
- base parameters with respect to which partial derivatives
were computed in the instancepublic FieldDerivativeStructure<T> linearCombination(FieldDerivativeStructure<T>[] a, FieldDerivativeStructure<T>[] b) throws MathIllegalArgumentException
linearCombination
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- Factors.b
- Factors.Σi ai bi
.MathIllegalArgumentException
- if number of free parameters
or orders do not matchpublic FieldDerivativeStructure<T> linearCombination(T[] a, FieldDerivativeStructure<T>[] b) throws MathIllegalArgumentException
a
- Factors.b
- Factors.Σi ai bi
.MathIllegalArgumentException
- if arrays dimensions don't matchpublic FieldDerivativeStructure<T> linearCombination(double[] a, FieldDerivativeStructure<T>[] b) throws MathIllegalArgumentException
linearCombination
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
a
- Factors.b
- Factors.Σi ai bi
.MathIllegalArgumentException
- if number of free parameters
or orders do not matchpublic FieldDerivativeStructure<T> linearCombination(FieldDerivativeStructure<T> a1, FieldDerivativeStructure<T> b1, FieldDerivativeStructure<T> a2, FieldDerivativeStructure<T> b2) throws MathIllegalArgumentException
linearCombination
in interface CalculusFieldElement<FieldDerivativeStructure<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 termMathIllegalArgumentException
- if number of free parameters
or orders do not matchCalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement)
,
CalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement)
public FieldDerivativeStructure<T> linearCombination(T a1, FieldDerivativeStructure<T> b1, T a2, FieldDerivativeStructure<T> b2) throws MathIllegalArgumentException
a1
- first factor of the first termb1
- second factor of the first terma2
- first factor of the second termb2
- second factor of the second termMathIllegalArgumentException
- if number of free parameters or orders are inconsistentlinearCombination(double, FieldDerivativeStructure, double, FieldDerivativeStructure)
,
linearCombination(double, FieldDerivativeStructure, double, FieldDerivativeStructure, double, FieldDerivativeStructure, double, FieldDerivativeStructure)
public FieldDerivativeStructure<T> linearCombination(double a1, FieldDerivativeStructure<T> b1, double a2, FieldDerivativeStructure<T> b2) throws MathIllegalArgumentException
linearCombination
in interface CalculusFieldElement<FieldDerivativeStructure<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 termMathIllegalArgumentException
- if number of free parameters
or orders do not matchCalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement, double, FieldElement)
,
CalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement, double, FieldElement, double, FieldElement)
public FieldDerivativeStructure<T> linearCombination(FieldDerivativeStructure<T> a1, FieldDerivativeStructure<T> b1, FieldDerivativeStructure<T> a2, FieldDerivativeStructure<T> b2, FieldDerivativeStructure<T> a3, FieldDerivativeStructure<T> b3) throws MathIllegalArgumentException
linearCombination
in interface CalculusFieldElement<FieldDerivativeStructure<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 termMathIllegalArgumentException
- if number of free parameters
or orders do not matchCalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement)
,
CalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement)
public FieldDerivativeStructure<T> linearCombination(T a1, FieldDerivativeStructure<T> b1, T a2, FieldDerivativeStructure<T> b2, T a3, FieldDerivativeStructure<T> b3) throws MathIllegalArgumentException
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, FieldDerivativeStructure, double, FieldDerivativeStructure)
,
linearCombination(double, FieldDerivativeStructure, double, FieldDerivativeStructure, double, FieldDerivativeStructure, double, FieldDerivativeStructure)
public FieldDerivativeStructure<T> linearCombination(double a1, FieldDerivativeStructure<T> b1, double a2, FieldDerivativeStructure<T> b2, double a3, FieldDerivativeStructure<T> b3) throws MathIllegalArgumentException
linearCombination
in interface CalculusFieldElement<FieldDerivativeStructure<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 termMathIllegalArgumentException
- if number of free parameters
or orders do not matchCalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement)
,
CalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement, double, FieldElement, double, FieldElement)
public FieldDerivativeStructure<T> linearCombination(FieldDerivativeStructure<T> a1, FieldDerivativeStructure<T> b1, FieldDerivativeStructure<T> a2, FieldDerivativeStructure<T> b2, FieldDerivativeStructure<T> a3, FieldDerivativeStructure<T> b3, FieldDerivativeStructure<T> a4, FieldDerivativeStructure<T> b4) throws MathIllegalArgumentException
linearCombination
in interface CalculusFieldElement<FieldDerivativeStructure<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 termMathIllegalArgumentException
- if number of free parameters
or orders do not matchCalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement)
,
CalculusFieldElement.linearCombination(FieldElement, FieldElement, FieldElement, FieldElement, FieldElement, FieldElement)
public FieldDerivativeStructure<T> linearCombination(T a1, FieldDerivativeStructure<T> b1, T a2, FieldDerivativeStructure<T> b2, T a3, FieldDerivativeStructure<T> b3, T a4, FieldDerivativeStructure<T> b4) throws MathIllegalArgumentException
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 third termb4
- second factor of the third termMathIllegalArgumentException
- if number of free parameters or orders are inconsistentlinearCombination(double, FieldDerivativeStructure, double, FieldDerivativeStructure)
,
linearCombination(double, FieldDerivativeStructure, double, FieldDerivativeStructure, double, FieldDerivativeStructure)
public FieldDerivativeStructure<T> linearCombination(double a1, FieldDerivativeStructure<T> b1, double a2, FieldDerivativeStructure<T> b2, double a3, FieldDerivativeStructure<T> b3, double a4, FieldDerivativeStructure<T> b4) throws MathIllegalArgumentException
linearCombination
in interface CalculusFieldElement<FieldDerivativeStructure<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 termMathIllegalArgumentException
- if number of free parameters
or orders do not matchCalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement)
,
CalculusFieldElement.linearCombination(double, FieldElement, double, FieldElement, double, FieldElement)
public FieldDerivativeStructure<T> getPi()
Archimedes constant is the ratio of a circle's circumference to its diameter.
getPi
in interface CalculusFieldElement<FieldDerivativeStructure<T extends CalculusFieldElement<T>>>
Copyright © 2016-2022 CS GROUP. All rights reserved.