CPD Results
The following document contains the results of PMD's CPD 7.3.0.
Duplications
| File | Line |
|---|---|
| org\hipparchus\linear\ArrayFieldVector.java | 873 |
| org\hipparchus\linear\SparseFieldVector.java | 585 |
}
}
/**
* Visits (but does not alter) all entries of this vector in default order
* (increasing index).
*
* @param visitor the visitor to be used to process the entries of this
* vector
* @return the value returned by {@link FieldVectorPreservingVisitor#end()}
* at the end of the walk
*/
public T walkInDefaultOrder(final FieldVectorPreservingVisitor<T> visitor) {
final int dim = getDimension();
visitor.start(dim, 0, dim - 1);
for (int i = 0; i < dim; i++) {
visitor.visit(i, getEntry(i));
}
return visitor.end();
}
/**
* Visits (but does not alter) some entries of this vector in default order
* (increasing index).
*
* @param visitor visitor to be used to process the entries of this vector
* @param start the index of the first entry to be visited
* @param end the index of the last entry to be visited (inclusive)
* @return the value returned by {@link FieldVectorPreservingVisitor#end()}
* at the end of the walk
* @throws MathIllegalArgumentException if {@code end < start}.
* @throws MathIllegalArgumentException if the indices are not valid.
*/
public T walkInDefaultOrder(final FieldVectorPreservingVisitor<T> visitor,
final int start, final int end)
throws MathIllegalArgumentException {
checkIndices(start, end);
visitor.start(getDimension(), start, end);
for (int i = start; i <= end; i++) {
visitor.visit(i, getEntry(i));
}
return visitor.end();
}
/**
* Visits (but does not alter) all entries of this vector in optimized
* order. The order in which the entries are visited is selected so as to
* lead to the most efficient implementation; it might depend on the
* concrete implementation of this abstract class.
*
* @param visitor the visitor to be used to process the entries of this
* vector
* @return the value returned by {@link FieldVectorPreservingVisitor#end()}
* at the end of the walk
*/
public T walkInOptimizedOrder(final FieldVectorPreservingVisitor<T> visitor) {
return walkInDefaultOrder(visitor);
}
/**
* Visits (but does not alter) some entries of this vector in optimized
* order. The order in which the entries are visited is selected so as to
* lead to the most efficient implementation; it might depend on the
* concrete implementation of this abstract class.
*
* @param visitor visitor to be used to process the entries of this vector
* @param start the index of the first entry to be visited
* @param end the index of the last entry to be visited (inclusive)
* @return the value returned by {@link FieldVectorPreservingVisitor#end()}
* at the end of the walk
* @throws MathIllegalArgumentException if {@code end < start}.
* @throws MathIllegalArgumentException if the indices are not valid.
*/
public T walkInOptimizedOrder(final FieldVectorPreservingVisitor<T> visitor,
final int start, final int end)
throws MathIllegalArgumentException {
return walkInDefaultOrder(visitor, start, end);
}
/**
* Visits (and possibly alters) all entries of this vector in default order
* (increasing index).
*
* @param visitor the visitor to be used to process and modify the entries
* of this vector
* @return the value returned by {@link FieldVectorChangingVisitor#end()}
* at the end of the walk
*/
public T walkInDefaultOrder(final FieldVectorChangingVisitor<T> visitor) {
final int dim = getDimension();
visitor.start(dim, 0, dim - 1);
for (int i = 0; i < dim; i++) {
setEntry(i, visitor.visit(i, getEntry(i)));
}
return visitor.end();
}
/**
* Visits (and possibly alters) some entries of this vector in default order
* (increasing index).
*
* @param visitor visitor to be used to process the entries of this vector
* @param start the index of the first entry to be visited
* @param end the index of the last entry to be visited (inclusive)
* @return the value returned by {@link FieldVectorChangingVisitor#end()}
* at the end of the walk
* @throws MathIllegalArgumentException if {@code end < start}.
* @throws MathIllegalArgumentException if the indices are not valid.
*/
public T walkInDefaultOrder(final FieldVectorChangingVisitor<T> visitor,
final int start, final int end)
throws MathIllegalArgumentException {
checkIndices(start, end);
visitor.start(getDimension(), start, end);
for (int i = start; i <= end; i++) {
setEntry(i, visitor.visit(i, getEntry(i)));
}
return visitor.end();
}
/**
* Visits (and possibly alters) all entries of this vector in optimized
* order. The order in which the entries are visited is selected so as to
* lead to the most efficient implementation; it might depend on the
* concrete implementation of this abstract class.
*
* @param visitor the visitor to be used to process the entries of this
* vector
* @return the value returned by {@link FieldVectorChangingVisitor#end()}
* at the end of the walk
*/
public T walkInOptimizedOrder(final FieldVectorChangingVisitor<T> visitor) {
return walkInDefaultOrder(visitor);
}
/**
* Visits (and possibly change) some entries of this vector in optimized
* order. The order in which the entries are visited is selected so as to
* lead to the most efficient implementation; it might depend on the
* concrete implementation of this abstract class.
*
* @param visitor visitor to be used to process the entries of this vector
* @param start the index of the first entry to be visited
* @param end the index of the last entry to be visited (inclusive)
* @return the value returned by {@link FieldVectorChangingVisitor#end()}
* at the end of the walk
* @throws MathIllegalArgumentException if {@code end < start}.
* @throws MathIllegalArgumentException if the indices are not valid.
*/
public T walkInOptimizedOrder(final FieldVectorChangingVisitor<T> visitor,
final int start, final int end)
throws MathIllegalArgumentException {
return walkInDefaultOrder(visitor, start, end);
}
/** {@inheritDoc}
* @since 2.0
*/
@Override
public String toString() {
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 937 |
| org\hipparchus\linear\BlockRealMatrix.java | 965 |
final T[] outBlock = out.blocks[outIndex];
final int index = pBlock * blockColumns + qBlock;
final int width = blockWidth(qBlock);
final int heightExcess = iHeight + rowsShift - BLOCK_SIZE;
final int widthExcess = jWidth + columnsShift - BLOCK_SIZE;
if (heightExcess > 0) {
// the submatrix block spans on two blocks rows from the original matrix
if (widthExcess > 0) {
// the submatrix block spans on two blocks columns from the original matrix
final int width2 = blockWidth(qBlock + 1);
copyBlockPart(blocks[index], width,
rowsShift, BLOCK_SIZE,
columnsShift, BLOCK_SIZE,
outBlock, jWidth, 0, 0);
copyBlockPart(blocks[index + 1], width2,
rowsShift, BLOCK_SIZE,
0, widthExcess,
outBlock, jWidth, 0, jWidth - widthExcess);
copyBlockPart(blocks[index + blockColumns], width,
0, heightExcess,
columnsShift, BLOCK_SIZE,
outBlock, jWidth, iHeight - heightExcess, 0);
copyBlockPart(blocks[index + blockColumns + 1], width2,
0, heightExcess,
0, widthExcess,
outBlock, jWidth, iHeight - heightExcess, jWidth - widthExcess);
} else {
// the submatrix block spans on one block column from the original matrix
copyBlockPart(blocks[index], width,
rowsShift, BLOCK_SIZE,
columnsShift, jWidth + columnsShift,
outBlock, jWidth, 0, 0);
copyBlockPart(blocks[index + blockColumns], width,
0, heightExcess,
columnsShift, jWidth + columnsShift,
outBlock, jWidth, iHeight - heightExcess, 0);
}
} else {
// the submatrix block spans on one block row from the original matrix
if (widthExcess > 0) {
// the submatrix block spans on two blocks columns from the original matrix
final int width2 = blockWidth(qBlock + 1);
copyBlockPart(blocks[index], width,
rowsShift, iHeight + rowsShift,
columnsShift, BLOCK_SIZE,
outBlock, jWidth, 0, 0);
copyBlockPart(blocks[index + 1], width2,
rowsShift, iHeight + rowsShift,
0, widthExcess,
outBlock, jWidth, 0, jWidth - widthExcess);
} else {
// the submatrix block spans on one block column from the original matrix
copyBlockPart(blocks[index], width,
rowsShift, iHeight + rowsShift,
columnsShift, jWidth + columnsShift,
outBlock, jWidth, 0, 0);
}
}
++qBlock;
}
++pBlock;
}
return out;
}
/**
* Copy a part of a block into another one
* <p>This method can be called only when the specified part fits in both
* blocks, no verification is done here.</p>
* @param srcBlock source block
* @param srcWidth source block width ({@link #BLOCK_SIZE} or smaller)
* @param srcStartRow start row in the source block
* @param srcEndRow end row (exclusive) in the source block
* @param srcStartColumn start column in the source block
* @param srcEndColumn end column (exclusive) in the source block
* @param dstBlock destination block
* @param dstWidth destination block width ({@link #BLOCK_SIZE} or smaller)
* @param dstStartRow start row in the destination block
* @param dstStartColumn start column in the destination block
*/
private void copyBlockPart(final T[] srcBlock, final int srcWidth,
|
|
| File | Line |
|---|---|
| org\hipparchus\special\elliptic\carlson\RdFieldDuplication.java | 92 |
| org\hipparchus\special\elliptic\carlson\RjFieldDuplication.java | 107 |
final T e5 = bigXY.multiply(bigZ2).multiply(bigZ);
final T e2e2 = e2.multiply(e2);
final T e2e3 = e2.multiply(e3);
final T e2e4 = e2.multiply(e4);
final T e2e5 = e2.multiply(e5);
final T e3e3 = e3.multiply(e3);
final T e3e4 = e3.multiply(e4);
final T e2e2e2 = e2e2.multiply(e2);
final T e2e2e3 = e2e2.multiply(e3);
// evaluate integral using equation 19.36.1 in DLMF
// (which add more terms than equation 2.7 in Carlson[1995])
final T poly = e3e4.add(e2e5).multiply(RdRealDuplication.E3_E4_P_E2_E5).
add(e2e2e3.multiply(RdRealDuplication.E2_E2_E3)).
add(e2e4.multiply(RdRealDuplication.E2_E4)).
add(e3e3.multiply(RdRealDuplication.E3_E3)).
add(e2e2e2.multiply(RdRealDuplication.E2_E2_E2)).
add(e5.multiply(RdRealDuplication.E5)).
add(e2e3.multiply(RdRealDuplication.E2_E3)).
add(e4.multiply(RdRealDuplication.E4)).
add(e2e2.multiply(RdRealDuplication.E2_E2)).
add(e3.multiply(RdRealDuplication.E3)).
add(e2.multiply(RdRealDuplication.E2)).
add(RdRealDuplication.CONSTANT).
divide(RdRealDuplication.DENOMINATOR);
final T polyTerm = poly.divide(aM.multiply(FastMath.sqrt(aM)).multiply(fourM));
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\DSCompiler.java | 2510 |
| org\hipparchus\analysis\differentiation\DSCompiler.java | 2627 |
p[0] = field.getOne().negate();
final T x2 = x.square();
final T f = x2.subtract(1).negate().reciprocal();
T coeff = f.sqrt();
function[1] = coeff.multiply(p[0]);
for (int n = 2; n <= order; ++n) {
// update and evaluate polynomial P_n(x)
T v = field.getZero();
p[n - 1] = p[n - 2].multiply(n - 1);
for (int k = n - 1; k >= 0; k -= 2) {
v = v.multiply(x2).add(p[k]);
if (k > 2) {
p[k - 2] = p[k - 1].multiply(k - 1).add(p[k - 3].multiply(2 * n - k));
} else if (k == 2) {
p[0] = p[1];
}
}
if ((n & 0x1) == 0) {
v = v.multiply(x);
}
coeff = coeff.multiply(f);
function[n] = coeff.multiply(v);
}
}
// apply function composition
compose(operand, operandOffset, function, result, resultOffset);
}
/** Compute arc sine of a derivative structure.
* @param operand array holding the operand
* @param operandOffset offset of the operand in its array
* @param result array where result must be stored (for
* arc sine the result array <em>cannot</em> be the input
* array)
* @param resultOffset offset of the result in its array
*/
public void asin(final double[] operand, final int operandOffset,
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockRealMatrix.java | 1676 |
| org\hipparchus\linear\BlockRealMatrix.java | 1706 |
public double walkInRowOrder(final RealMatrixChangingVisitor visitor,
final int startRow, final int endRow,
final int startColumn, final int endColumn)
throws MathIllegalArgumentException {
MatrixUtils.checkSubMatrixIndex(this, startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int p = pStart; p < pEnd; ++p) {
for (int jBlock = startColumn / BLOCK_SIZE; jBlock < 1 + endColumn / BLOCK_SIZE; ++jBlock) {
final int jWidth = blockWidth(jBlock);
final int q0 = jBlock * BLOCK_SIZE;
final int qStart = FastMath.max(startColumn, q0);
final int qEnd = FastMath.min((jBlock + 1) * BLOCK_SIZE, 1 + endColumn);
final double[] block = blocks[iBlock * blockColumns + jBlock];
int k = (p - p0) * jWidth + qStart - q0;
for (int q = qStart; q < qEnd; ++q) {
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1666 |
| org\hipparchus\linear\BlockFieldMatrix.java | 1696 |
public T walkInRowOrder(final FieldMatrixChangingVisitor<T> visitor,
final int startRow, final int endRow,
final int startColumn, final int endColumn)
throws MathIllegalArgumentException {
checkSubMatrixIndex(startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int p = pStart; p < pEnd; ++p) {
for (int jBlock = startColumn / BLOCK_SIZE; jBlock < 1 + endColumn / BLOCK_SIZE; ++jBlock) {
final int jWidth = blockWidth(jBlock);
final int q0 = jBlock * BLOCK_SIZE;
final int qStart = FastMath.max(startColumn, q0);
final int qEnd = FastMath.min((jBlock + 1) * BLOCK_SIZE, 1 + endColumn);
final T[] block = blocks[iBlock * blockColumns + jBlock];
int k = (p - p0) * jWidth + qStart - q0;
for (int q = qStart; q < qEnd; ++q) {
|
|
| File | Line |
|---|---|
| org\hipparchus\special\elliptic\carlson\RdFieldDuplication.java | 66 |
| org\hipparchus\special\elliptic\carlson\RfFieldDuplication.java | 58 |
sum = sum.add(vaM[2].add(lambda).multiply(sqrtM[2]).multiply(fourM).reciprocal());
// equations 2.29 and 2.30 in Carlson[1995]
vaM[0] = vaM[0].linearCombination(0.25, vaM[0], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // xₘ
vaM[1] = vaM[1].linearCombination(0.25, vaM[1], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // yₘ
vaM[2] = vaM[2].linearCombination(0.25, vaM[2], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // zₘ
vaM[3] = vaM[3].linearCombination(0.25, vaM[3], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // aₘ
}
/** {@inheritDoc} */
@Override
protected T evaluate(final T[] va0, final T aM, final double fourM) {
// compute symmetric differences
final T inv = aM.multiply(fourM).reciprocal();
final T bigX = va0[3].subtract(va0[0]).multiply(inv);
final T bigY = va0[3].subtract(va0[1]).multiply(inv);
final T bigZ = bigX.add(bigY).divide(-3);
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\DSCompiler.java | 2450 |
| org\hipparchus\analysis\differentiation\DSCompiler.java | 2567 |
p[0] = -1;
final double x2 = x * x;
final double f = 1.0 / (1 - x2);
double coeff = FastMath.sqrt(f);
function[1] = coeff * p[0];
for (int n = 2; n <= order; ++n) {
// update and evaluate polynomial P_n(x)
double v = 0;
p[n - 1] = (n - 1) * p[n - 2];
for (int k = n - 1; k >= 0; k -= 2) {
v = v * x2 + p[k];
if (k > 2) {
p[k - 2] = (k - 1) * p[k - 1] + (2 * n - k) * p[k - 3];
} else if (k == 2) {
p[0] = p[1];
}
}
if ((n & 0x1) == 0) {
v *= x;
}
coeff *= f;
function[n] = coeff * v;
}
}
// apply function composition
compose(operand, operandOffset, function, result, resultOffset);
}
/** Compute arc cosine of a derivative structure.
* @param operand array holding the operand
* @param operandOffset offset of the operand in its array
* @param result array where result must be stored (for
* arc cosine the result array <em>cannot</em> be the input
* array)
* @param resultOffset offset of the result in its array
* @param <T> the type of the function parameters and value
*/
public <T extends CalculusFieldElement<T>> void acos(final T[] operand, final int operandOffset,
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\FieldLUDecomposition.java | 338 |
| org\hipparchus\linear\FieldLUDecomposition.java | 384 |
b.getDimension(), m);
}
if (singular) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.SINGULAR_MATRIX);
}
// Apply permutations to b
final T[] bp = MathArrays.buildArray(field, m);
for (int row = 0; row < m; row++) {
bp[row] = b.getEntry(pivot[row]);
}
// Solve LY = b
for (int col = 0; col < m; col++) {
final T bpCol = bp[col];
for (int i = col + 1; i < m; i++) {
bp[i] = bp[i].subtract(bpCol.multiply(lu[i][col]));
}
}
// Solve UX = Y
for (int col = m - 1; col >= 0; col--) {
bp[col] = bp[col].divide(lu[col][col]);
final T bpCol = bp[col];
for (int i = 0; i < col; i++) {
bp[i] = bp[i].subtract(bpCol.multiply(lu[i][col]));
}
}
return new ArrayFieldVector<>(field, bp, false);
|
|
| File | Line |
|---|---|
| org\hipparchus\random\Well44497a.java | 88 |
| org\hipparchus\random\Well44497b.java | 87 |
public Well44497a(long seed) {
super(K, seed);
}
/** {@inheritDoc} */
@Override
public int nextInt() {
final int indexRm1 = TABLE.getIndexPred(index);
final int indexRm2 = TABLE.getIndexPred2(index);
final int v0 = v[index];
final int vM1 = v[TABLE.getIndexM1(index)];
final int vM2 = v[TABLE.getIndexM2(index)];
final int vM3 = v[TABLE.getIndexM3(index)];
// the values below include the errata of the original article
final int z0 = (0xFFFF8000 & v[indexRm1]) ^ (0x00007FFF & v[indexRm2]);
final int z1 = (v0 ^ (v0 << 24)) ^ (vM1 ^ (vM1 >>> 30));
final int z2 = (vM2 ^ (vM2 << 10)) ^ (vM3 << 26);
final int z3 = z1 ^ z2;
final int z2Prime = ((z2 << 9) ^ (z2 >>> 23)) & 0xfbffffff;
final int z2Second = ((z2 & 0x00020000) != 0) ? (z2Prime ^ 0xb729fcec) : z2Prime;
|
|
| File | Line |
|---|---|
| org\hipparchus\util\MathArrays.java | 1119 |
| org\hipparchus\util\MathArrays.java | 1195 |
| org\hipparchus\util\MathArrays.java | 1291 |
final double a2, final double b2) {
// the code below is split in many additions/subtractions that may
// appear redundant. However, they should NOT be simplified, as they
// use IEEE754 floating point arithmetic rounding properties.
// The variable naming conventions are that xyzHigh contains the most significant
// bits of xyz and xyzLow contains its least significant bits. So theoretically
// xyz is the sum xyzHigh + xyzLow, but in many cases below, this sum cannot
// be represented in only one double precision number so we preserve two numbers
// to hold it as long as we can, combining the high and low order bits together
// only at the end, after cancellation may have occurred on high order bits
// split a1 and b1 as one 26 bits number and one 27 bits number
final double a1High = Double.longBitsToDouble(Double.doubleToRawLongBits(a1) & ((-1L) << 27));
final double a1Low = a1 - a1High;
final double b1High = Double.longBitsToDouble(Double.doubleToRawLongBits(b1) & ((-1L) << 27));
final double b1Low = b1 - b1High;
// accurate multiplication a1 * b1
final double prod1High = a1 * b1;
final double prod1Low = a1Low * b1Low - (((prod1High - a1High * b1High) - a1Low * b1High) - a1High * b1Low);
// split a2 and b2 as one 26 bits number and one 27 bits number
final double a2High = Double.longBitsToDouble(Double.doubleToRawLongBits(a2) & ((-1L) << 27));
final double a2Low = a2 - a2High;
final double b2High = Double.longBitsToDouble(Double.doubleToRawLongBits(b2) & ((-1L) << 27));
final double b2Low = b2 - b2High;
// accurate multiplication a2 * b2
final double prod2High = a2 * b2;
final double prod2Low = a2Low * b2Low - (((prod2High - a2High * b2High) - a2Low * b2High) - a2High * b2Low);
// accurate addition a1 * b1 + a2 * b2
final double s12High = prod1High + prod2High;
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\FieldGradient.java | 679 |
| org\hipparchus\analysis\differentiation\FieldGradient.java | 703 |
public FieldGradient<T> linearCombination(final T[] a, final FieldGradient<T>[] b) {
// extract values and first derivatives
final Field<T> field = b[0].value.getField();
final int n = b.length;
final T[] b0 = MathArrays.buildArray(field, n);
final T[] b1 = MathArrays.buildArray(field, n);
for (int i = 0; i < n; ++i) {
b0[i] = b[i].value;
}
final FieldGradient<T> result = newInstance(b[0].value.linearCombination(a, b0));
for (int k = 0; k < grad.length; ++k) {
for (int i = 0; i < n; ++i) {
b1[i] = b[i].grad[k];
}
result.grad[k] = b[0].value.linearCombination(a, b1);
}
return result;
}
/** {@inheritDoc} */
@Override
public FieldGradient<T> linearCombination(final double[] a, final FieldGradient<T>[] b) {
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\FieldUnivariateDerivative2.java | 709 |
| org\hipparchus\analysis\differentiation\FieldUnivariateDerivative2.java | 768 |
public FieldUnivariateDerivative2<T> linearCombination(final T[] a, final FieldUnivariateDerivative2<T>[] b) {
// extract values and derivatives
final Field<T> field = b[0].f0.getField();
final int n = b.length;
final T[] b0 = MathArrays.buildArray(field, n);
final T[] b1 = MathArrays.buildArray(field, n);
final T[] b2 = MathArrays.buildArray(field, n);
for (int i = 0; i < n; ++i) {
b0[i] = b[i].f0;
b1[i] = b[i].f1;
b2[i] = b[i].f2;
}
return new FieldUnivariateDerivative2<>(b[0].f0.linearCombination(a, b0),
b[0].f0.linearCombination(a, b1),
b[0].f0.linearCombination(a, b2));
}
/** {@inheritDoc} */
@Override
public FieldUnivariateDerivative2<T> linearCombination(final FieldUnivariateDerivative2<T>[] a,
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1048 |
| org\hipparchus\linear\BlockRealMatrix.java | 1076 |
for (final T[] subRow : subMatrix) {
if (subRow.length != refLength) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.DIMENSIONS_MISMATCH,
refLength, subRow.length);
}
}
// compute blocks bounds
final int blockStartRow = row / BLOCK_SIZE;
final int blockEndRow = (endRow + BLOCK_SIZE) / BLOCK_SIZE;
final int blockStartColumn = column / BLOCK_SIZE;
final int blockEndColumn = (endColumn + BLOCK_SIZE) / BLOCK_SIZE;
// perform copy block-wise, to ensure good cache behavior
for (int iBlock = blockStartRow; iBlock < blockEndRow; ++iBlock) {
final int iHeight = blockHeight(iBlock);
final int firstRow = iBlock * BLOCK_SIZE;
final int iStart = FastMath.max(row, firstRow);
final int iEnd = FastMath.min(endRow + 1, firstRow + iHeight);
for (int jBlock = blockStartColumn; jBlock < blockEndColumn; ++jBlock) {
final int jWidth = blockWidth(jBlock);
final int firstColumn = jBlock * BLOCK_SIZE;
final int jStart = FastMath.max(column, firstColumn);
final int jEnd = FastMath.min(endColumn + 1, firstColumn + jWidth);
final int jLength = jEnd - jStart;
// handle one block, row by row
final T[] block = blocks[iBlock * blockColumns + jBlock];
|
|
| File | Line |
|---|---|
| org\hipparchus\special\elliptic\carlson\RdRealDuplication.java | 105 |
| org\hipparchus\special\elliptic\carlson\RfRealDuplication.java | 85 |
vaM[0] = MathArrays.linearCombination(0.25, vaM[0], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // xₘ
vaM[1] = MathArrays.linearCombination(0.25, vaM[1], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // yₘ
vaM[2] = MathArrays.linearCombination(0.25, vaM[2], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // zₘ
vaM[3] = MathArrays.linearCombination(0.25, vaM[3], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // aₘ
}
/** {@inheritDoc} */
@Override
protected double evaluate(final double[] va0, final double aM, final double fourM) {
// compute symmetric differences
final double inv = 1.0 / (aM * fourM);
final double bigX = (va0[3] - va0[0]) * inv;
final double bigY = (va0[3] - va0[1]) * inv;
final double bigZ = (bigX + bigY) / -3;
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\solvers\BracketingNthOrderBrentSolver.java | 302 |
| org\hipparchus\analysis\solvers\FieldBracketingNthOrderBrentSolver.java | 363 |
return new Interval(nextX, nextY, nextX, nextY);
}
if ((nbPoints > 2) && (end - start != nbPoints)) {
// we have been forced to ignore some points to keep bracketing,
// they are probably too far from the root, drop them from now on
nbPoints = end - start;
System.arraycopy(x, start, x, 0, nbPoints);
System.arraycopy(y, start, y, 0, nbPoints);
signChangeIndex -= start;
} else if (nbPoints == x.length) {
// we have to drop one point in order to insert the new one
nbPoints--;
// keep the tightest bracketing interval as centered as possible
if (signChangeIndex >= (x.length + 1) / 2) {
// we drop the lowest point, we have to shift the arrays and the index
System.arraycopy(x, 1, x, 0, nbPoints);
System.arraycopy(y, 1, y, 0, nbPoints);
--signChangeIndex;
}
}
// insert the last computed point
//(by construction, we know it lies inside the tightest bracketing interval)
System.arraycopy(x, signChangeIndex, x, signChangeIndex + 1, nbPoints - signChangeIndex);
x[signChangeIndex] = nextX;
System.arraycopy(y, signChangeIndex, y, signChangeIndex + 1, nbPoints - signChangeIndex);
y[signChangeIndex] = nextY;
++nbPoints;
// update the bracketing interval
if (nextY * yA <= 0) {
|
|
| File | Line |
|---|---|
| org\hipparchus\special\elliptic\carlson\RfFieldDuplication.java | 56 |
| org\hipparchus\special\elliptic\carlson\RjFieldDuplication.java | 76 |
final T lambdaA = sqrtM[0].multiply(sqrtM[1]);
final T lambdaB = sqrtM[0].multiply(sqrtM[2]);
final T lambdaC = sqrtM[1].multiply(sqrtM[2]);
// equations 2.3 and 2.4 in Carlson[1995]
vaM[0] = vaM[0].linearCombination(0.25, vaM[0], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // xₘ
vaM[1] = vaM[1].linearCombination(0.25, vaM[1], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // yₘ
vaM[2] = vaM[2].linearCombination(0.25, vaM[2], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // zₘ
vaM[3] = vaM[3].linearCombination(0.25, vaM[3], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // aₘ
|
|
| File | Line |
|---|---|
| org\hipparchus\special\Gamma.java | 1031 |
| org\hipparchus\special\Gamma.java | 1067 |
T c = one.newInstance(INV_GAMMA1P_M1_C13).add(t.multiply(a.divide(b)));
c = t.multiply(c).add(INV_GAMMA1P_M1_C12);
c = t.multiply(c).add(INV_GAMMA1P_M1_C11);
c = t.multiply(c).add(INV_GAMMA1P_M1_C10);
c = t.multiply(c).add(INV_GAMMA1P_M1_C9);
c = t.multiply(c).add(INV_GAMMA1P_M1_C8);
c = t.multiply(c).add(INV_GAMMA1P_M1_C7);
c = t.multiply(c).add(INV_GAMMA1P_M1_C6);
c = t.multiply(c).add(INV_GAMMA1P_M1_C5);
c = t.multiply(c).add(INV_GAMMA1P_M1_C4);
c = t.multiply(c).add(INV_GAMMA1P_M1_C3);
c = t.multiply(c).add(INV_GAMMA1P_M1_C2);
c = t.multiply(c).add(INV_GAMMA1P_M1_C1);
c = t.multiply(c).add(INV_GAMMA1P_M1_C);
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\FieldDerivativeStructure.java | 1009 |
| org\hipparchus\analysis\differentiation\FieldDerivativeStructure.java | 1037 |
public FieldDerivativeStructure<T> linearCombination(final T[] a, final FieldDerivativeStructure<T>[] b)
throws MathIllegalArgumentException {
// compute an accurate value, taking care of cancellations
final T[] bT = MathArrays.buildArray(factory.getValueField(), b.length);
for (int i = 0; i < b.length; ++i) {
bT[i] = b[i].getValue();
}
final T accurateValue = bT[0].linearCombination(a, bT);
// compute a simple value, with all partial derivatives
FieldDerivativeStructure<T> simpleValue = b[0].getField().getZero();
for (int i = 0; i < a.length; ++i) {
simpleValue = simpleValue.add(b[i].multiply(a[i]));
}
// create a result with accurate value and all derivatives (not necessarily as accurate as the value)
final T[] all = simpleValue.getAllDerivatives();
all[0] = accurateValue;
return factory.build(all);
}
/** {@inheritDoc}
* @exception MathIllegalArgumentException if number of free parameters
* or orders do not match
*/
@Override
public FieldDerivativeStructure<T> linearCombination(final double[] a, final FieldDerivativeStructure<T>[] b)
|
|
| File | Line |
|---|---|
| org\hipparchus\util\FastMathLiteralArrays.java | 32 |
| org\hipparchus\util\FastMathLiteralArrays.java | 1538 |
private static final double[] EXP_INT_A = {
+0.0d,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
|
|
| File | Line |
|---|---|
| org\hipparchus\random\Well19937a.java | 89 |
| org\hipparchus\random\Well19937c.java | 89 |
public Well19937a(long seed) {
super(K, seed);
}
/** {@inheritDoc} */
@Override
public int nextInt() {
final int indexRm1 = TABLE.getIndexPred(index);
final int indexRm2 = TABLE.getIndexPred2(index);
final int v0 = v[index];
final int vM1 = v[TABLE.getIndexM1(index)];
final int vM2 = v[TABLE.getIndexM2(index)];
final int vM3 = v[TABLE.getIndexM3(index)];
final int z0 = (0x80000000 & v[indexRm1]) ^ (0x7FFFFFFF & v[indexRm2]);
final int z1 = (v0 ^ (v0 << 25)) ^ (vM1 ^ (vM1 >>> 27));
final int z2 = (vM2 >>> 9) ^ (vM3 ^ (vM3 >>> 1));
final int z3 = z1 ^ z2;
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1670 |
| org\hipparchus\linear\BlockRealMatrix.java | 1680 |
| org\hipparchus\linear\BlockRealMatrix.java | 1710 |
checkSubMatrixIndex(startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int p = pStart; p < pEnd; ++p) {
for (int jBlock = startColumn / BLOCK_SIZE; jBlock < 1 + endColumn / BLOCK_SIZE; ++jBlock) {
final int jWidth = blockWidth(jBlock);
final int q0 = jBlock * BLOCK_SIZE;
final int qStart = FastMath.max(startColumn, q0);
final int qEnd = FastMath.min((jBlock + 1) * BLOCK_SIZE, 1 + endColumn);
final T[] block = blocks[iBlock * blockColumns + jBlock];
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1700 |
| org\hipparchus\linear\BlockRealMatrix.java | 1680 |
| org\hipparchus\linear\BlockRealMatrix.java | 1710 |
checkSubMatrixIndex(startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int p = pStart; p < pEnd; ++p) {
for (int jBlock = startColumn / BLOCK_SIZE; jBlock < 1 + endColumn / BLOCK_SIZE; ++jBlock) {
final int jWidth = blockWidth(jBlock);
final int q0 = jBlock * BLOCK_SIZE;
final int qStart = FastMath.max(startColumn, q0);
final int qEnd = FastMath.min((jBlock + 1) * BLOCK_SIZE, 1 + endColumn);
final T[] block = blocks[iBlock * blockColumns + jBlock];
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 326 |
| org\hipparchus\linear\BlockFieldMatrix.java | 398 |
checkAdditionCompatible(m);
final BlockFieldMatrix<T> out = new BlockFieldMatrix<>(getField(), rows, columns);
// perform addition block-wise, to ensure good cache behavior
int blockIndex = 0;
for (int iBlock = 0; iBlock < out.blockRows; ++iBlock) {
for (int jBlock = 0; jBlock < out.blockColumns; ++jBlock) {
// perform addition on the current block
final T[] outBlock = out.blocks[blockIndex];
final T[] tBlock = blocks[blockIndex];
final int pStart = iBlock * BLOCK_SIZE;
final int pEnd = FastMath.min(pStart + BLOCK_SIZE, rows);
final int qStart = jBlock * BLOCK_SIZE;
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, columns);
int k = 0;
for (int p = pStart; p < pEnd; ++p) {
for (int q = qStart; q < qEnd; ++q) {
outBlock[k] = tBlock[k].add(m.getEntry(p, q));
|
|
| File | Line |
|---|---|
| org\hipparchus\util\FastMathLiteralArrays.java | 33 |
| org\hipparchus\util\FastMathLiteralArrays.java | 1492 |
| org\hipparchus\util\FastMathLiteralArrays.java | 1539 |
| org\hipparchus\util\FastMathLiteralArrays.java | 2998 |
+0.0d,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
|
|
| File | Line |
|---|---|
| org\hipparchus\util\FastMathLiteralArrays.java | 33 |
| org\hipparchus\util\FastMathLiteralArrays.java | 1540 |
+0.0d,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
Double.NaN,
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockRealMatrix.java | 309 |
| org\hipparchus\linear\BlockRealMatrix.java | 377 |
MatrixUtils.checkAdditionCompatible(this, m);
final BlockRealMatrix out = new BlockRealMatrix(rows, columns);
// perform addition block-wise, to ensure good cache behavior
int blockIndex = 0;
for (int iBlock = 0; iBlock < out.blockRows; ++iBlock) {
final int pStart = iBlock * BLOCK_SIZE;
final int pEnd = FastMath.min(pStart + BLOCK_SIZE, rows);
for (int jBlock = 0; jBlock < out.blockColumns; ++jBlock) {
// perform addition on the current block
final double[] outBlock = out.blocks[blockIndex];
final double[] tBlock = blocks[blockIndex];
final int qStart = jBlock * BLOCK_SIZE;
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, columns);
int k = 0;
for (int p = pStart; p < pEnd; ++p) {
for (int q = qStart; q < qEnd; ++q) {
outBlock[k] = tBlock[k] + m.getEntry(p, q);
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1618 |
| org\hipparchus\linear\BlockFieldMatrix.java | 1642 |
public T walkInRowOrder(final FieldMatrixChangingVisitor<T> visitor) {
visitor.start(rows, columns, 0, rows - 1, 0, columns - 1);
for (int iBlock = 0; iBlock < blockRows; ++iBlock) {
final int pStart = iBlock * BLOCK_SIZE;
final int pEnd = FastMath.min(pStart + BLOCK_SIZE, rows);
for (int p = pStart; p < pEnd; ++p) {
for (int jBlock = 0; jBlock < blockColumns; ++jBlock) {
final int jWidth = blockWidth(jBlock);
final int qStart = jBlock * BLOCK_SIZE;
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, columns);
final T[] block = blocks[iBlock * blockColumns + jBlock];
int k = (p - pStart) * jWidth;
for (int q = qStart; q < qEnd; ++q) {
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\FieldUnivariateDerivative1.java | 473 |
| org\hipparchus\analysis\differentiation\FieldUnivariateDerivative1.java | 520 |
public FieldUnivariateDerivative1<T> linearCombination(final T[] a, final FieldUnivariateDerivative1<T>[] b) {
// extract values and first derivatives
final Field<T> field = b[0].f0.getField();
final int n = b.length;
final T[] b0 = MathArrays.buildArray(field, n);
final T[] b1 = MathArrays.buildArray(field, n);
for (int i = 0; i < n; ++i) {
b0[i] = b[i].f0;
b1[i] = b[i].f1;
}
return new FieldUnivariateDerivative1<>(b[0].f0.linearCombination(a, b0),
b[0].f0.linearCombination(a, b1));
}
/** {@inheritDoc} */
@Override
public FieldUnivariateDerivative1<T> linearCombination(final FieldUnivariateDerivative1<T>[] a,
|
|
| File | Line |
|---|---|
| org\hipparchus\special\elliptic\carlson\RfRealDuplication.java | 80 |
| org\hipparchus\special\elliptic\carlson\RjRealDuplication.java | 70 |
final double lambdaA = sqrtM[0] * sqrtM[1];
final double lambdaB = sqrtM[0] * sqrtM[2];
final double lambdaC = sqrtM[1] * sqrtM[2];
// equations 2.3 and 2.4 in Carlson[1995]
vaM[0] = MathArrays.linearCombination(0.25, vaM[0], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // xₘ
vaM[1] = MathArrays.linearCombination(0.25, vaM[1], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // yₘ
vaM[2] = MathArrays.linearCombination(0.25, vaM[2], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // zₘ
vaM[3] = MathArrays.linearCombination(0.25, vaM[3], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // aₘ
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1780 |
| org\hipparchus\linear\BlockRealMatrix.java | 1791 |
| org\hipparchus\linear\BlockRealMatrix.java | 1822 |
checkSubMatrixIndex(startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int jBlock = startColumn / BLOCK_SIZE; jBlock < 1 + endColumn / BLOCK_SIZE; ++jBlock) {
final int jWidth = blockWidth(jBlock);
final int q0 = jBlock * BLOCK_SIZE;
final int qStart = FastMath.max(startColumn, q0);
final int qEnd = FastMath.min((jBlock + 1) * BLOCK_SIZE, 1 + endColumn);
final T[] block = blocks[iBlock * blockColumns + jBlock];
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1810 |
| org\hipparchus\linear\BlockRealMatrix.java | 1791 |
| org\hipparchus\linear\BlockRealMatrix.java | 1822 |
checkSubMatrixIndex(startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int jBlock = startColumn / BLOCK_SIZE; jBlock < 1 + endColumn / BLOCK_SIZE; ++jBlock) {
final int jWidth = blockWidth(jBlock);
final int q0 = jBlock * BLOCK_SIZE;
final int qStart = FastMath.max(startColumn, q0);
final int qEnd = FastMath.min((jBlock + 1) * BLOCK_SIZE, 1 + endColumn);
final T[] block = blocks[iBlock * blockColumns + jBlock];
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\FieldGradient.java | 843 |
| org\hipparchus\analysis\differentiation\Gradient.java | 678 |
final FieldGradient<T> result = newInstance(a1.value.linearCombination(a1.value, b1.value,
a2.value, b2.value,
a3.value, b3.value,
a4.value, b4.value));
for (int i = 0; i < b1.grad.length; ++i) {
a[1] = a1.grad[i];
a[3] = a2.grad[i];
a[5] = a3.grad[i];
a[7] = a4.grad[i];
b[0] = b1.grad[i];
b[2] = b2.grad[i];
b[4] = b3.grad[i];
b[6] = b4.grad[i];
result.grad[i] = a1.value.linearCombination(a, b);
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 52 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 64 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\Derivative.java | 92 |
| org\hipparchus\analysis\differentiation\FieldDerivative.java | 104 |
@Override
default T log10() {
return log().divide(FastMath.log(10.));
}
/** {@inheritDoc} */
@Override
default T pow(T e) {
return log().multiply(e).exp();
}
/** {@inheritDoc} */
@Override
default T cosh() {
return (exp().add(negate().exp())).divide(2);
}
/** {@inheritDoc} */
@Override
default T sinh() {
return (exp().subtract(negate().exp())).divide(2);
}
/** {@inheritDoc} */
@Override
default T acos() {
return asin().negate().add(getPi().divide(2));
}
/** {@inheritDoc} */
@Override
default int getExponent() {
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1726 |
| org\hipparchus\linear\BlockFieldMatrix.java | 1751 |
public T walkInOptimizedOrder(final FieldMatrixChangingVisitor<T> visitor) {
visitor.start(rows, columns, 0, rows - 1, 0, columns - 1);
int blockIndex = 0;
for (int iBlock = 0; iBlock < blockRows; ++iBlock) {
final int pStart = iBlock * BLOCK_SIZE;
final int pEnd = FastMath.min(pStart + BLOCK_SIZE, rows);
for (int jBlock = 0; jBlock < blockColumns; ++jBlock) {
final int qStart = jBlock * BLOCK_SIZE;
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, columns);
final T[] block = blocks[blockIndex];
int k = 0;
for (int p = pStart; p < pEnd; ++p) {
for (int q = qStart; q < qEnd; ++q) {
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockRealMatrix.java | 492 |
| org\hipparchus\linear\BlockRealMatrix.java | 679 |
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, m.getColumnDimension());
// select current block
final double[] outBlock = out.blocks[blockIndex];
// perform multiplication on current block
for (int kBlock = 0; kBlock < blockColumns; ++kBlock) {
final int kWidth = blockWidth(kBlock);
final double[] tBlock = blocks[iBlock * blockColumns + kBlock];
final int rStart = kBlock * BLOCK_SIZE;
int k = 0;
for (int p = pStart; p < pEnd; ++p) {
final int lStart = (p - pStart) * kWidth;
final int lEnd = lStart + kWidth;
for (int q = qStart; q < qEnd; ++q) {
double sum = 0;
int r = rStart;
for (int l = lStart; l < lEnd; ++l) {
sum += tBlock[l] * m.getEntry(r++, q);
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockRealMatrix.java | 1736 |
| org\hipparchus\linear\BlockRealMatrix.java | 1761 |
public double walkInOptimizedOrder(final RealMatrixChangingVisitor visitor) {
visitor.start(rows, columns, 0, rows - 1, 0, columns - 1);
int blockIndex = 0;
for (int iBlock = 0; iBlock < blockRows; ++iBlock) {
final int pStart = iBlock * BLOCK_SIZE;
final int pEnd = FastMath.min(pStart + BLOCK_SIZE, rows);
for (int jBlock = 0; jBlock < blockColumns; ++jBlock) {
final int qStart = jBlock * BLOCK_SIZE;
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, columns);
final double[] block = blocks[blockIndex];
int k = 0;
for (int p = pStart; p < pEnd; ++p) {
for (int q = qStart; q < qEnd; ++q) {
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1821 |
| org\hipparchus\linear\BlockRealMatrix.java | 1833 |
final T[] block = blocks[iBlock * blockColumns + jBlock];
for (int p = pStart; p < pEnd; ++p) {
int k = (p - p0) * jWidth + qStart - q0;
for (int q = qStart; q < qEnd; ++q) {
visitor.visit(p, q, block[k]);
++k;
}
}
}
}
return visitor.end();
}
/**
* Get the height of a block.
* @param blockRow row index (in block sense) of the block
* @return height (number of rows) of the block
*/
private int blockHeight(final int blockRow) {
return (blockRow == blockRows - 1) ? rows - blockRow * BLOCK_SIZE : BLOCK_SIZE;
}
/**
* Get the width of a block.
* @param blockColumn column index (in block sense) of the block
* @return width (number of columns) of the block
*/
private int blockWidth(final int blockColumn) {
return (blockColumn == blockColumns - 1) ? columns - blockColumn * BLOCK_SIZE : BLOCK_SIZE;
}
}
|
|
| File | Line |
|---|---|
| org\hipparchus\util\FastMath.java | 547 |
| org\hipparchus\util\FastMath.java | 685 |
double yb = -(ya - hiPrec[0] - hiPrec[1]);
/* Compute expm1(-x) = -expm1(x) / (expm1(x) + 1) */
double denom = 1.0 + ya;
double denomr = 1.0 / denom;
double denomb = -(denom - 1.0 - ya) + yb;
double ratio = ya * denomr;
double temp = ratio * HEX_40000000;
double ra = ratio + temp - temp;
double rb = ratio - ra;
temp = denom * HEX_40000000;
double za = denom + temp - temp;
double zb = denom - za;
rb += (ya - za*ra - za*rb - zb*ra - zb*rb) * denomr;
// Adjust for yb
rb += yb*denomr; // numerator
rb += -ya * denomb * denomr * denomr; // denominator
// y = y - 1/y
temp = ya + ra;
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\AkimaSplineInterpolator.java | 153 |
| org\hipparchus\analysis\interpolation\AkimaSplineInterpolator.java | 235 |
firstDerivatives[i] = ((wP * differences[i - 1]) + (wM * differences[i])) / (wP + wM);
}
}
firstDerivatives[0] = differentiateThreePoint(xvals, yvals, 0, 0, 1, 2);
firstDerivatives[1] = differentiateThreePoint(xvals, yvals, 1, 0, 1, 2);
firstDerivatives[xvals.length - 2] = differentiateThreePoint(xvals, yvals, xvals.length - 2,
xvals.length - 3, xvals.length - 2,
xvals.length - 1);
firstDerivatives[xvals.length - 1] = differentiateThreePoint(xvals, yvals, xvals.length - 1,
xvals.length - 3, xvals.length - 2,
xvals.length - 1);
return interpolateHermiteSorted(xvals, yvals, firstDerivatives);
}
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 51 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 52 |
{ 2,-2,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 67 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 68 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 64 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 67 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\MatrixUtils.java | 829 |
| org\hipparchus\linear\MatrixUtils.java | 873 |
public static void solveLowerTriangularSystem(RealMatrix rm, RealVector b)
throws MathIllegalArgumentException, MathRuntimeException {
if ((rm == null) || (b == null) || ( rm.getRowDimension() != b.getDimension())) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.DIMENSIONS_MISMATCH,
(rm == null) ? 0 : rm.getRowDimension(),
(b == null) ? 0 : b.getDimension());
}
if( rm.getColumnDimension() != rm.getRowDimension() ){
throw new MathIllegalArgumentException(LocalizedCoreFormats.NON_SQUARE_MATRIX,
rm.getRowDimension(), rm.getColumnDimension());
}
int rows = rm.getRowDimension();
for( int i = 0 ; i < rows ; i++ ){
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\DSCompiler.java | 3265 |
| org\hipparchus\analysis\differentiation\DSCompiler.java | 3382 |
final T f = x2.subtract(1).reciprocal();
T coeff = f.sqrt();
function[1] = coeff.multiply(p[0]);
for (int n = 2; n <= order; ++n) {
// update and evaluate polynomial P_n(x)
T v = field.getZero();
p[n - 1] = p[n - 2].multiply(1 - n);
for (int k = n - 1; k >= 0; k -= 2) {
v = v.multiply(x2).add(p[k]);
if (k > 2) {
p[k - 2] = p[k - 1].multiply(1 - k).add(p[k - 3].multiply(k - 2 * n));
|
|
| File | Line |
|---|---|
| org\hipparchus\special\elliptic\carlson\RdFieldDuplication.java | 66 |
| org\hipparchus\special\elliptic\carlson\RjFieldDuplication.java | 78 |
sum = sum.add(vaM[2].add(lambda).multiply(sqrtM[2]).multiply(fourM).reciprocal());
// equations 2.29 and 2.30 in Carlson[1995]
vaM[0] = vaM[0].linearCombination(0.25, vaM[0], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // xₘ
vaM[1] = vaM[1].linearCombination(0.25, vaM[1], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // yₘ
vaM[2] = vaM[2].linearCombination(0.25, vaM[2], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // zₘ
vaM[3] = vaM[3].linearCombination(0.25, vaM[3], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // aₘ
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 761 |
| org\hipparchus\linear\BlockRealMatrix.java | 726 |
final BlockFieldMatrix<T> out = new BlockFieldMatrix<>(getField(), columns, m.columns);
// perform multiplication block-wise, to ensure good cache behavior
int blockIndex = 0;
for (int iBlock = 0; iBlock < out.blockRows; ++iBlock) {
final int iHeight = out.blockHeight(iBlock);
final int iHeight2 = iHeight + iHeight;
final int iHeight3 = iHeight2 + iHeight;
final int iHeight4 = iHeight3 + iHeight;
final int pStart = iBlock * BLOCK_SIZE;
final int pEnd = FastMath.min(pStart + BLOCK_SIZE, columns);
for (int jBlock = 0; jBlock < out.blockColumns; ++jBlock) {
final int jWidth = out.blockWidth(jBlock);
final int jWidth2 = jWidth + jWidth;
final int jWidth3 = jWidth2 + jWidth;
final int jWidth4 = jWidth3 + jWidth;
// select current block
final T[] outBlock = out.blocks[blockIndex];
|
|
| File | Line |
|---|---|
| org\hipparchus\util\FastMathCalc.java | 207 |
| org\hipparchus\util\FastMathCalc.java | 252 |
static double slowCos(final double x, final double[] result) {
final double[] xs = new double[2];
final double[] ys = new double[2];
final double[] facts = new double[2];
final double[] as = new double[2];
split(x, xs);
ys[0] = ys[1] = 0.0;
for (int i = FACT.length-1; i >= 0; i--) {
splitMult(xs, ys, as);
ys[0] = as[0]; ys[1] = as[1];
if ( (i & 1) != 0) { // skip odd entries
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\FieldGradient.java | 767 |
| org\hipparchus\analysis\differentiation\Gradient.java | 635 |
final FieldGradient<T> result = newInstance(a1.value.linearCombination(a1.value, b1.value,
a2.value, b2.value,
a3.value, b3.value));
for (int i = 0; i < b1.grad.length; ++i) {
a[1] = a1.grad[i];
a[3] = a2.grad[i];
a[5] = a3.grad[i];
b[0] = b1.grad[i];
b[2] = b2.grad[i];
b[4] = b3.grad[i];
result.grad[i] = a1.value.linearCombination(a, b);
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\UnivariateDerivative1.java | 470 |
| org\hipparchus\analysis\differentiation\UnivariateDerivative2.java | 734 |
return new UnivariateDerivative1(MathArrays.linearCombination(a1.f0, b1.f0,
a2.f0, b2.f0,
a3.f0, b3.f0,
a4.f0, b4.f0),
MathArrays.linearCombination(new double[] {
a1.f0, a1.f1,
a2.f0, a2.f1,
a3.f0, a3.f1,
a4.f0, a4.f1
}, new double[] {
b1.f1, b1.f0,
b2.f1, b2.f0,
b3.f1, b3.f0,
b4.f1, b4.f0
}));
|
|
| File | Line |
|---|---|
| org\hipparchus\util\FastMathCalc.java | 220 |
| org\hipparchus\util\FastMathCalc.java | 264 |
if ( (i & 1) != 0) { // skip odd entries
continue;
}
split(FACT[i], as);
splitReciprocal(as, facts);
if ( (i & 2) != 0 ) { // alternate terms are negative
facts[0] = -facts[0];
facts[1] = -facts[1];
}
splitAdd(ys, facts, as);
ys[0] = as[0]; ys[1] = as[1];
}
if (result != null) {
result[0] = ys[0];
result[1] = ys[1];
}
return ys[0] + ys[1];
}
/**
* For x between 0 and pi/4 compute sine using Taylor expansion:
* sin(x) = x - x^3/3! + x^5/5! - x^7/7! ...
* @param x number from which sine is requested
* @param result placeholder where to put the result in extended precision
* (may be null)
* @return sin(x)
*/
static double slowSin(final double x, final double[] result) {
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\FieldGradient.java | 184 |
| org\hipparchus\analysis\differentiation\Gradient.java | 175 |
public T getPartialDerivative(final int ... orders)
throws MathIllegalArgumentException {
// check the number of components
if (orders.length != grad.length) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.DIMENSIONS_MISMATCH,
orders.length, grad.length);
}
// check that either all derivation orders are set to 0,
// or that only one is set to 1 and all other ones are set to 0
int selected = -1;
for (int i = 0; i < orders.length; ++i) {
if (orders[i] != 0) {
if (selected >= 0 || orders[i] != 1) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.DERIVATION_ORDER_NOT_ALLOWED,
orders[i]);
}
// found the component set to derivation order 1
selected = i;
}
}
return (selected < 0) ? value : grad[selected];
}
/** Get the partial derivative with respect to one parameter.
* @param n index of the parameter (counting from 0)
* @return partial derivative with respect to the n<sup>th</sup> parameter
* @exception MathIllegalArgumentException if n is either negative or larger
* or equal to {@link #getFreeParameters()}
*/
public T getPartialDerivative(final int n) throws MathIllegalArgumentException {
|
|
| File | Line |
|---|---|
| org\hipparchus\util\FastMathCalc.java | 207 |
| org\hipparchus\util\FastMathCalc.java | 296 |
static double slowCos(final double x, final double[] result) {
final double[] xs = new double[2];
final double[] ys = new double[2];
final double[] facts = new double[2];
final double[] as = new double[2];
split(x, xs);
ys[0] = ys[1] = 0.0;
for (int i = FACT.length-1; i >= 0; i--) {
splitMult(xs, ys, as);
ys[0] = as[0]; ys[1] = as[1];
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\FieldGradient.java | 798 |
| org\hipparchus\analysis\differentiation\FieldGradient.java | 814 |
final T a3, final FieldGradient<T> b3) {
final FieldGradient<T> result = newInstance(b1.value.linearCombination(a1, b1.value,
a2, b2.value,
a3, b3.value));
for (int i = 0; i < b1.grad.length; ++i) {
result.grad[i] = b1.value.linearCombination(a1, b1.grad[i],
a2, b2.grad[i],
a3, b3.grad[i]);
}
return result;
}
/** {@inheritDoc} */
@Override
public FieldGradient<T> linearCombination(final double a1, final FieldGradient<T> b1,
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockRealMatrix.java | 1676 |
| org\hipparchus\linear\BlockRealMatrix.java | 1786 |
public double walkInRowOrder(final RealMatrixChangingVisitor visitor,
final int startRow, final int endRow,
final int startColumn, final int endColumn)
throws MathIllegalArgumentException {
MatrixUtils.checkSubMatrixIndex(this, startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int p = pStart; p < pEnd; ++p) {
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockRealMatrix.java | 1706 |
| org\hipparchus\linear\BlockRealMatrix.java | 1817 |
public double walkInRowOrder(final RealMatrixPreservingVisitor visitor,
final int startRow, final int endRow,
final int startColumn, final int endColumn)
throws MathIllegalArgumentException {
MatrixUtils.checkSubMatrixIndex(this, startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int p = pStart; p < pEnd; ++p) {
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 54 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 66 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 81 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 84 |
{ 0,0,0,0,0,0,0,0,-3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1102 |
| org\hipparchus\linear\BlockRealMatrix.java | 1130 |
final T[] block = blocks[iBlock * blockColumns + jBlock];
final int available = outBlock.length - outIndex;
if (jWidth > available) {
System.arraycopy(block, iRow * jWidth, outBlock, outIndex, available);
outBlock = out.blocks[++outBlockIndex];
System.arraycopy(block, iRow * jWidth, outBlock, 0, jWidth - available);
outIndex = jWidth - available;
} else {
System.arraycopy(block, iRow * jWidth, outBlock, outIndex, jWidth);
outIndex += jWidth;
}
}
return out;
}
/** {@inheritDoc} */
@Override
public void setRowMatrix(final int row, final FieldMatrix<T> matrix)
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1666 |
| org\hipparchus\linear\BlockFieldMatrix.java | 1776 |
public T walkInRowOrder(final FieldMatrixChangingVisitor<T> visitor,
final int startRow, final int endRow,
final int startColumn, final int endColumn)
throws MathIllegalArgumentException {
checkSubMatrixIndex(startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int p = pStart; p < pEnd; ++p) {
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1696 |
| org\hipparchus\linear\BlockFieldMatrix.java | 1806 |
public T walkInRowOrder(final FieldMatrixPreservingVisitor<T> visitor,
final int startRow, final int endRow,
final int startColumn, final int endColumn)
throws MathIllegalArgumentException {
checkSubMatrixIndex(startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int p = pStart; p < pEnd; ++p) {
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 48 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 52 |
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 51 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 64 |
{ 2,-2,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 64 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 68 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 67 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 68 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1618 |
| org\hipparchus\linear\BlockRealMatrix.java | 1628 |
| org\hipparchus\linear\BlockRealMatrix.java | 1652 |
public T walkInRowOrder(final FieldMatrixChangingVisitor<T> visitor) {
visitor.start(rows, columns, 0, rows - 1, 0, columns - 1);
for (int iBlock = 0; iBlock < blockRows; ++iBlock) {
final int pStart = iBlock * BLOCK_SIZE;
final int pEnd = FastMath.min(pStart + BLOCK_SIZE, rows);
for (int p = pStart; p < pEnd; ++p) {
for (int jBlock = 0; jBlock < blockColumns; ++jBlock) {
final int jWidth = blockWidth(jBlock);
final int qStart = jBlock * BLOCK_SIZE;
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, columns);
final T[] block = blocks[iBlock * blockColumns + jBlock];
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1642 |
| org\hipparchus\linear\BlockRealMatrix.java | 1628 |
| org\hipparchus\linear\BlockRealMatrix.java | 1652 |
public T walkInRowOrder(final FieldMatrixPreservingVisitor<T> visitor) {
visitor.start(rows, columns, 0, rows - 1, 0, columns - 1);
for (int iBlock = 0; iBlock < blockRows; ++iBlock) {
final int pStart = iBlock * BLOCK_SIZE;
final int pEnd = FastMath.min(pStart + BLOCK_SIZE, rows);
for (int p = pStart; p < pEnd; ++p) {
for (int jBlock = 0; jBlock < blockColumns; ++jBlock) {
final int jWidth = blockWidth(jBlock);
final int qStart = jBlock * BLOCK_SIZE;
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, columns);
final T[] block = blocks[iBlock * blockColumns + jBlock];
|
|
| File | Line |
|---|---|
| org\hipparchus\util\FastMath.java | 431 |
| org\hipparchus\util\FastMath.java | 510 |
exp(x, 0.0, hiPrec);
double ya = hiPrec[0] + hiPrec[1];
double yb = -(ya - hiPrec[0] - hiPrec[1]);
double temp = ya * HEX_40000000;
double yaa = ya + temp - temp;
double yab = ya - yaa;
// recip = 1/y
double recip = 1.0/ya;
temp = recip * HEX_40000000;
double recipa = recip + temp - temp;
double recipb = recip - recipa;
// Correct for rounding in division
recipb += (1.0 - yaa*recipa - yaa*recipb - yab*recipa - yab*recipb) * recip;
// Account for yb
recipb += -yb * recip * recip;
|
|
| File | Line |
|---|---|
| org\hipparchus\util\FastMath.java | 2607 |
| org\hipparchus\util\FastMath.java | 2747 |
}
if (xa != xa || xa == Double.POSITIVE_INFINITY) {
return Double.NaN;
}
/* Perform any argument reduction */
double xb = 0;
if (xa > 3294198.0) {
// PI * (2**20)
// Argument too big for CodyWaite reduction. Must use
// PayneHanek.
double[] reduceResults = new double[3];
reducePayneHanek(xa, reduceResults);
quadrant = ((int) reduceResults[0]) & 3;
xa = reduceResults[1];
xb = reduceResults[2];
} else if (xa > 1.5707963267948966) {
final CodyWaite cw = new CodyWaite(xa);
quadrant = cw.getK() & 3;
xa = cw.getRemA();
xb = cw.getRemB();
}
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\FieldDerivativeStructure.java | 1261 |
| org\hipparchus\analysis\differentiation\FieldDerivativeStructure.java | 1288 |
final T a4, final FieldDerivativeStructure<T> b4)
throws MathIllegalArgumentException {
factory.checkCompatibility(b1.factory);
factory.checkCompatibility(b2.factory);
factory.checkCompatibility(b3.factory);
factory.checkCompatibility(b4.factory);
final FieldDerivativeStructure<T> ds = factory.build();
factory.getCompiler().linearCombination(a1, b1.data, 0,
a2, b2.data, 0,
a3, b3.data, 0,
a4, b4.data, 0,
ds.data, 0);
return ds;
}
/** {@inheritDoc}
* @exception MathIllegalArgumentException if number of free parameters
* or orders do not match
*/
@Override
public FieldDerivativeStructure<T> linearCombination(final double a1, final FieldDerivativeStructure<T> b1,
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 48 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 55 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 67 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 97 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 100 |
{ 0,0,0,0,0,0,0,0,2,0,0,0,-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\dfp\DfpField.java | 583 |
| org\hipparchus\dfp\DfpMath.java | 48 |
private Dfp[] split(final String a) {
Dfp[] result = new Dfp[2];
boolean leading = true;
int sp = 0;
int sig = 0;
StringBuilder builder1 = new StringBuilder(a.length());
for (int i = 0; i < a.length(); i++) {
final char c = a.charAt(i);
builder1.append(c);
if (c >= '1' && c <= '9') {
leading = false;
}
if (c == '.') {
sig += (400 - sig) % 4;
leading = false;
}
if (sig == (radixDigits / 2) * 4) {
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 162 |
| org\hipparchus\linear\BlockRealMatrix.java | 158 |
} else {
// reference existing array
blocks = blockData; // NOPMD - array copy is taken care of by parameter
}
int index = 0;
for (int iBlock = 0; iBlock < blockRows; ++iBlock) {
final int iHeight = blockHeight(iBlock);
for (int jBlock = 0; jBlock < blockColumns; ++jBlock, ++index) {
if (blockData[index].length != iHeight * blockWidth(jBlock)) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.DIMENSIONS_MISMATCH,
blockData[index].length,
iHeight * blockWidth(jBlock));
}
if (copyArray) {
blocks[index] = blockData[index].clone();
}
}
}
}
/**
* Convert a data array from raw layout to blocks layout.
* <p>
* Raw layout is the straightforward layout where element at row i and
* column j is in array element <code>rawData[i][j]</code>. Blocks layout
* is the layout used in {@link BlockFieldMatrix} instances, where the matrix
* is split in square blocks (except at right and bottom side where blocks may
* be rectangular to fit matrix size) and each block is stored in a flattened
* one-dimensional array.
* </p>
* <p>
* This method creates an array in blocks layout from an input array in raw layout.
* It can be used to provide the array argument of the {@link
* #BlockFieldMatrix(int, int, FieldElement[][], boolean)}
* constructor.
* </p>
* @param <T> Type of the field elements.
* @param rawData Data array in raw layout.
* @return a new data array containing the same entries but in blocks layout
* @throws MathIllegalArgumentException if {@code rawData} is not rectangular
* (not all rows have the same length).
* @see #createBlocksLayout(Field, int, int)
* @see #BlockFieldMatrix(int, int, FieldElement[][], boolean)
*/
public static <T extends FieldElement<T>> T[][] toBlocksLayout(final T[][] rawData)
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1492 |
| org\hipparchus\linear\BlockRealMatrix.java | 1507 |
final int qStart = jBlock * BLOCK_SIZE;
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, rows);
int k = 0;
for (int p = pStart; p < pEnd; ++p) {
final int lInc = pEnd - pStart;
int l = p - pStart;
for (int q = qStart; q < qEnd; ++q) {
outBlock[k] = tBlock[l];
++k;
l+= lInc;
}
}
// go to next block
++blockIndex;
}
}
return out;
}
/** {@inheritDoc} */
@Override
public int getRowDimension() {
return rows;
}
/** {@inheritDoc} */
@Override
public int getColumnDimension() {
return columns;
}
/** {@inheritDoc} */
@Override
public T[] operate(final T[] v) throws MathIllegalArgumentException {
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockRealMatrix.java | 1676 |
| org\hipparchus\linear\BlockRealMatrix.java | 1786 |
| org\hipparchus\linear\BlockRealMatrix.java | 1817 |
public double walkInRowOrder(final RealMatrixChangingVisitor visitor,
final int startRow, final int endRow,
final int startColumn, final int endColumn)
throws MathIllegalArgumentException {
MatrixUtils.checkSubMatrixIndex(this, startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int p = pStart; p < pEnd; ++p) {
|
|
| File | Line |
|---|---|
| org\hipparchus\special\elliptic\carlson\RdRealDuplication.java | 105 |
| org\hipparchus\special\elliptic\carlson\RjRealDuplication.java | 75 |
vaM[0] = MathArrays.linearCombination(0.25, vaM[0], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // xₘ
vaM[1] = MathArrays.linearCombination(0.25, vaM[1], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // yₘ
vaM[2] = MathArrays.linearCombination(0.25, vaM[2], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // zₘ
vaM[3] = MathArrays.linearCombination(0.25, vaM[3], 0.25, lambdaA, 0.25, lambdaB, 0.25, lambdaC); // aₘ
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 48 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 49 |
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 48 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 49 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 52 |
{ 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 52 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 64 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 52 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 67 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 53 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 65 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 53 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 64 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 65 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 68 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 67 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 70 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 68 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 68 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 70 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 70 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3,3,0,0,0,0,0,0,-2,-1,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1666 |
| org\hipparchus\linear\BlockFieldMatrix.java | 1776 |
| org\hipparchus\linear\BlockFieldMatrix.java | 1806 |
public T walkInRowOrder(final FieldMatrixChangingVisitor<T> visitor,
final int startRow, final int endRow,
final int startColumn, final int endColumn)
throws MathIllegalArgumentException {
checkSubMatrixIndex(startRow, endRow, startColumn, endColumn);
visitor.start(rows, columns, startRow, endRow, startColumn, endColumn);
for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {
final int p0 = iBlock * BLOCK_SIZE;
final int pStart = FastMath.max(startRow, p0);
final int pEnd = FastMath.min((iBlock + 1) * BLOCK_SIZE, 1 + endRow);
for (int p = pStart; p < pEnd; ++p) {
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 49 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 51 |
{ 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 49 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 56 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 60 |
{ -3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,-3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 72 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 76 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0,-1,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\ArrayFieldVector.java | 1104 |
| org\hipparchus\linear\SparseFieldVector.java | 531 |
}
/**
* Checks that the indices of a subvector are valid.
*
* @param start the index of the first entry of the subvector
* @param end the index of the last entry of the subvector (inclusive)
* @throws MathIllegalArgumentException if {@code start} of {@code end} are not valid
* @throws MathIllegalArgumentException if {@code end < start}
*/
private void checkIndices(final int start, final int end)
throws MathIllegalArgumentException {
final int dim = getDimension();
if ((start < 0) || (start >= dim)) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.INDEX, start, 0,
dim - 1);
}
if ((end < 0) || (end >= dim)) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.INDEX, end, 0,
dim - 1);
}
if (end < start) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.INITIAL_ROW_AFTER_FINAL_ROW,
end, start, false);
}
}
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 919 |
| org\hipparchus\linear\BlockRealMatrix.java | 947 |
new BlockFieldMatrix<>(getField(), endRow - startRow + 1, endColumn - startColumn + 1);
// compute blocks shifts
final int blockStartRow = startRow / BLOCK_SIZE;
final int rowsShift = startRow % BLOCK_SIZE;
final int blockStartColumn = startColumn / BLOCK_SIZE;
final int columnsShift = startColumn % BLOCK_SIZE;
// perform extraction block-wise, to ensure good cache behavior
int pBlock = blockStartRow;
for (int iBlock = 0; iBlock < out.blockRows; ++iBlock) {
final int iHeight = out.blockHeight(iBlock);
int qBlock = blockStartColumn;
for (int jBlock = 0; jBlock < out.blockColumns; ++jBlock) {
final int jWidth = out.blockWidth(jBlock);
// handle one block of the output matrix
final int outIndex = iBlock * out.blockColumns + jBlock;
final T[] outBlock = out.blocks[outIndex];
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 48 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 50 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 51 |
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 48 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 56 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 60 |
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 49 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 49 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 51 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 56 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 60 |
{ 2,-2,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 52 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 56 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 60 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 64 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 72 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 76 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 67 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 72 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 76 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 68 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 72 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 76 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 48 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 49 |
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 50 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ -3,3,0,0,0,0,0,0,-2,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 51 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ 2,-2,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\ArrayFieldVector.java | 1114 |
| org\hipparchus\linear\RealVector.java | 216 |
| org\hipparchus\linear\SparseFieldVector.java | 541 |
private void checkIndices(final int start, final int end)
throws MathIllegalArgumentException {
final int dim = getDimension();
if ((start < 0) || (start >= dim)) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.INDEX, start, 0,
dim - 1);
}
if ((end < 0) || (end >= dim)) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.INDEX, end, 0,
dim - 1);
}
if (end < start) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.INITIAL_ROW_AFTER_FINAL_ROW,
end, start, false);
}
}
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 518 |
| org\hipparchus\linear\BlockFieldMatrix.java | 713 |
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, m.getColumnDimension());
// select current block
final T[] outBlock = out.blocks[blockIndex];
// perform multiplication on current block
for (int kBlock = 0; kBlock < blockColumns; ++kBlock) {
final int kWidth = blockWidth(kBlock);
final T[] tBlock = blocks[iBlock * blockColumns + kBlock];
final int rStart = kBlock * BLOCK_SIZE;
int k = 0;
for (int p = pStart; p < pEnd; ++p) {
final int lStart = (p - pStart) * kWidth;
final int lEnd = lStart + kWidth;
for (int q = qStart; q < qEnd; ++q) {
T sum = zero;
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 50 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ -3,3,0,0,0,0,0,0,-2,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 50 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ -3,3,0,0,0,0,0,0,-2,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 51 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ 2,-2,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 51 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 69 |
{ 2,-2,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 52 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 63 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 64 |
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 226 |
| org\hipparchus\linear\BlockFieldMatrix.java | 275 |
final T[][] blocks = MathArrays.buildArray(field, blockRows * blockColumns, -1);
int blockIndex = 0;
for (int iBlock = 0; iBlock < blockRows; ++iBlock) {
final int pStart = iBlock * BLOCK_SIZE;
final int pEnd = FastMath.min(pStart + BLOCK_SIZE, rows);
final int iHeight = pEnd - pStart;
for (int jBlock = 0; jBlock < blockColumns; ++jBlock) {
final int qStart = jBlock * BLOCK_SIZE;
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, columns);
final int jWidth = qEnd - qStart;
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 48 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 50 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 51 |
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 49 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 50 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 51 |
{ 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 50 |
| org\hipparchus\analysis\interpolation\TricubicInterpolatingFunction.java | 51 |
{ -3,3,0,0,0,0,0,0,-2,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
|
|
| File | Line |
|---|---|
| org\hipparchus\util\FastMath.java | 799 |
| org\hipparchus\util\FastMath.java | 838 |
temp = da + yb;
db += -(temp - da - yb);
da = temp;
temp = da * HEX_40000000;
double daa = da + temp - temp;
double dab = da - daa;
// ratio = na/da
double ratio = na/da;
temp = ratio * HEX_40000000;
double ratioa = ratio + temp - temp;
double ratiob = ratio - ratioa;
// Correct for rounding in division
ratiob += (na - daa*ratioa - daa*ratiob - dab*ratioa - dab*ratiob) / da;
// Account for nb
ratiob += nb / da;
// Account for db
ratiob += -db * na / da / da;
result = ratioa + ratiob;
}
|
|
| File | Line |
|---|---|
| org\hipparchus\util\FieldTuple.java | 713 |
| org\hipparchus\util\FieldTuple.java | 742 |
final FieldTuple<T> a3, final FieldTuple<T> b3) {
final FieldTuple<T> result = new FieldTuple<>(field, MathArrays.buildArray(values[0].getField(), values.length));
for (int i = 0; i < values.length; ++i) {
result.values[i] = a1.values[0].linearCombination(a1.values[i], b1.values[i],
a2.values[i], b2.values[i],
a3.values[i], b3.values[i]);
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\Array2DRowFieldMatrix.java | 230 |
| org\hipparchus\linear\Array2DRowFieldMatrix.java | 258 |
checkAdditionCompatible(m);
final int rowCount = getRowDimension();
final int columnCount = getColumnDimension();
final T[][] outData = MathArrays.buildArray(getField(), rowCount, columnCount);
for (int row = 0; row < rowCount; row++) {
final T[] dataRow = data[row];
final T[] mRow = m.data[row];
final T[] outDataRow = outData[row];
for (int col = 0; col < columnCount; col++) {
outDataRow[col] = dataRow[col].add(mRow[col]);
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockFieldMatrix.java | 1159 |
| org\hipparchus\linear\BlockRealMatrix.java | 1187 |
final T[] block = blocks[iBlock * blockColumns + jBlock];
final int available = mBlock.length - mIndex;
if (jWidth > available) {
System.arraycopy(mBlock, mIndex, block, iRow * jWidth, available);
mBlock = matrix.blocks[++mBlockIndex];
System.arraycopy(mBlock, 0, block, iRow * jWidth, jWidth - available);
mIndex = jWidth - available;
} else {
System.arraycopy(mBlock, mIndex, block, iRow * jWidth, jWidth);
mIndex += jWidth;
}
}
}
/** {@inheritDoc} */
@Override
public FieldMatrix<T> getColumnMatrix(final int column)
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\BlockRealMatrix.java | 217 |
| org\hipparchus\linear\BlockRealMatrix.java | 261 |
final double[][] blocks = new double[blockRows * blockColumns][];
int blockIndex = 0;
for (int iBlock = 0; iBlock < blockRows; ++iBlock) {
final int pStart = iBlock * BLOCK_SIZE;
final int pEnd = FastMath.min(pStart + BLOCK_SIZE, rows);
final int iHeight = pEnd - pStart;
for (int jBlock = 0; jBlock < blockColumns; ++jBlock) {
final int qStart = jBlock * BLOCK_SIZE;
final int qEnd = FastMath.min(qStart + BLOCK_SIZE, columns);
final int jWidth = qEnd - qStart;
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\differentiation\FieldUnivariateDerivative2.java | 891 |
| org\hipparchus\analysis\differentiation\FieldUnivariateDerivative2.java | 907 |
final T a3, final FieldUnivariateDerivative2<T> b3) {
return new FieldUnivariateDerivative2<>(b1.f0.linearCombination(a1, b1.f0,
a2, b2.f0,
a3, b3.f0),
b1.f0.linearCombination(a1, b1.f1,
a2, b2.f1,
a3, b3.f1),
b1.f0.linearCombination(a1, b1.f2,
a2, b2.f2,
a3, b3.f2));
}
/** {@inheritDoc} */
@Override
public FieldUnivariateDerivative2<T> linearCombination(final double a1, final FieldUnivariateDerivative2<T> b1,
|
|
| File | Line |
|---|---|
| org\hipparchus\linear\Array2DRowRealMatrix.java | 168 |
| org\hipparchus\linear\Array2DRowRealMatrix.java | 195 |
MatrixUtils.checkAdditionCompatible(this, m);
final int rowCount = getRowDimension();
final int columnCount = getColumnDimension();
final double[][] outData = new double[rowCount][columnCount];
for (int row = 0; row < rowCount; row++) {
final double[] dataRow = data[row];
final double[] mRow = m.data[row];
final double[] outDataRow = outData[row];
for (int col = 0; col < columnCount; col++) {
outDataRow[col] = dataRow[col] + mRow[col];
|
|
| File | Line |
|---|---|
| org\hipparchus\analysis\polynomials\PolynomialFunction.java | 154 |
| org\hipparchus\analysis\polynomials\PolynomialFunction.java | 174 |
public <T extends Derivative<T>> T value(final T t)
throws MathIllegalArgumentException, NullArgumentException {
MathUtils.checkNotNull(coefficients);
int n = coefficients.length;
if (n == 0) {
throw new MathIllegalArgumentException(LocalizedCoreFormats.EMPTY_POLYNOMIALS_COEFFICIENTS_ARRAY);
}
T result = t.getField().getZero().add(coefficients[n - 1]);
for (int j = n - 2; j >= 0; j--) {
result = result.multiply(t).add(coefficients[j]);
}
return result;
}
|
|
Hipparchus::Core