Class CRErrorVectorSW
java.lang.Object
org.ddogleg.chainrule.ops.CRErrorVectorSW
- All Implemented Interfaces:
CROperatorBackwardsJac<double[]>, CROperatorForward<double[]>
Computes the error between a known prior and an estimated value. A single weight is applied to all elements
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidPerforms forward pass of the function.Class<double[]> Primitive data type for the arrayintNumber of inputsintgetInputSize(int which) Returns the specified input's vector sizeintReturns the output vector's sizeEncodes all weights that are not 1.0voidComputes the Jacobian of all the inputs and parameters to this function.voidsetEstimated(double[] values, int offset) Convenient way to set estimated values without using CRArrayvoidSpecifies the value of an input's vector.voidsetObserved(double[] values, int offset) Convenient way to set observed values without using CRArrayvoidsetSettings(Map<String, String> settings) Reconfigures the block using the specified settingsvoidSets the observed vector to zero.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface CROperatorForward
normalizeAfterStep
-
Field Details
-
estimated
protected double[] estimatedinput[0] the estimated value -
observed
protected double[] observedinput[1] the observed value. Often this is known no Jacobian is needed. -
weight
protected double weightError weight applied to all elements -
math
-
workJac
-
-
Constructor Details
-
CRErrorVectorSW
public CRErrorVectorSW(int length) -
CRErrorVectorSW
public CRErrorVectorSW(int length, double weight)
-
-
Method Details
-
zeroObserved
public void zeroObserved()Sets the observed vector to zero. This is a common assumption for parameter priors -
setObserved
public void setObserved(double[] values, int offset) Convenient way to set observed values without using CRArray -
setEstimated
public void setEstimated(double[] values, int offset) Convenient way to set estimated values without using CRArray -
forward
Description copied from interface:CROperatorForwardPerforms forward pass of the function. Must have already updatedCROperatorForward.setInput(int, CRArray).- Specified by:
forwardin interfaceCROperatorForward<double[]>- Parameters:
output- (Output) Output vector. Modified.
-
jacobian
Description copied from interface:CROperatorBackwardsJacComputes the Jacobian of all the inputs and parameters to this function.
Mathematical explanation of how the partial derivatives are computed:
@Out(..)/@x = [@f1(x,y)/@x @f1(x,y)/@y ; @f2(x,y)/@x ... ] * @???/@fWhere Out is the final output, 'f' is this function with two inputs (x,y). '@Out/@f' is dout.
- Specified by:
jacobianin interfaceCROperatorBackwardsJac<double[]>- Parameters:
dout- (Input) Jacobian of output conditional on this function, computed from next layer.jacobianInputs- (Output) Storage for all the Jacobian inputs. All matrices must be pre-declared and included in the list. If a matrix is marked as invalid, then the jacobian is skipped for that input.
-
setInput
Description copied from interface:CROperatorForwardSpecifies the value of an input's vector.
The implementation can safely save the array
inputpoints at along with its offset. Neither the values at that offset nor the array itself will change until afterCROperatorForward.forward(CRArray)or a derived function such asCROperatorBackwardsJac.jacobian(CRMatrix, List)has been called. Theinputreference itself cannot be saved: the caller is free to recycle theCRArraythe moment the call returns, including pointing it at another offset.- Specified by:
setInputin interfaceCROperatorForward<double[]>- Parameters:
which- Which inputinput- The input's value. This reference can't be saved internally but the array and offset can be.
-
getInputSize
public int getInputSize(int which) Description copied from interface:CROperatorForwardReturns the specified input's vector size- Specified by:
getInputSizein interfaceCROperatorForward<double[]>
-
getInputCount
public int getInputCount()Description copied from interface:CROperatorForwardNumber of inputs- Specified by:
getInputCountin interfaceCROperatorForward<double[]>
-
setSettings
Description copied from interface:CROperatorForwardReconfigures the block using the specified settings- Specified by:
setSettingsin interfaceCROperatorForward<double[]>
-
getSettings
Encodes all weights that are not 1.0- Specified by:
getSettingsin interfaceCROperatorForward<double[]>
-
getOutputSize
public int getOutputSize()Description copied from interface:CROperatorForwardReturns the output vector's size- Specified by:
getOutputSizein interfaceCROperatorForward<double[]>
-
getArrayType
Description copied from interface:CROperatorForwardPrimitive data type for the array- Specified by:
getArrayTypein interfaceCROperatorForward<double[]>
-