@Override public boolean initializeSolver() { if( solver == null ) throw new RuntimeException("Solver not set"); if( !solver.setA(hessian) ) { return false; } return true; }
@Override public boolean initializeSolver() { if( solver == null ) throw new RuntimeException("Solver not set"); return solver.setA(hessian); }
@Override public boolean initializeSolver() { if( solver == null ) throw new RuntimeException("Solver not set"); if( !solver.setA(hessian) ) { return false; } return true; }
@Override public void solve(DenseMatrix64F solutionToPack, DenseMatrix64F vector) { if (!solver.setA(jacobianMatrix)) throw new RuntimeException("jacobian is singular"); solver.solve(vector, solutionToPack); }
@Override public void solve(DenseMatrix64F solutionToPack, DenseMatrix64F vector) { if (!solver.setA(jacobianMatrix)) throw new RuntimeException("jacobian is singular"); solver.solve(vector, solutionToPack); }
private void solveForCoefficients() { solver.setA(constraintMatrix); solver.solve(constraintVector, coefficientVector); }
public void solveForCoefficients() { solver.setA(constraintMatrix); solver.solve(constraintVector, coefficientVector); }
private void solveForCoefficients() { solver.setA(constraintMatrix); solver.solve(constraintVector, coefficientVector); }
/** * Converts 'A' into a block matrix and call setA() on the block matrix solver. * * @param A The A matrix in the linear equation. Not modified. Reference saved. * @return true if it can solve the system. */ @Override public boolean setA(DenseMatrix64F A) { blockA.reshape(A.numRows,A.numCols,false); BlockMatrixOps.convert(A,blockA); return alg.setA(blockA); }
public void setA(DenseMatrix64F A) { this.A.set(A); solver.setA(A); solver.invert(APlus); }
public void setA(DenseMatrix64F A) { this.A.set(A); solver.setA(A); solver.invert(APlus); }
/** * Converts 'A' into a block matrix and call setA() on the block matrix solver. * * @param A The A matrix in the linear equation. Not modified. Reference saved. * @return true if it can solve the system. */ @Override public boolean setA(DenseMatrix64F A) { blockA.reshape(A.numRows,A.numCols,false); BlockMatrixOps.convert(A,blockA); return alg.setA(blockA); }
/** * Converts 'A' into a block matrix and call setA() on the block matrix solver. * * @param A The A matrix in the linear equation. Not modified. Reference saved. * @return true if it can solve the system. */ @Override public boolean setA(DenseMatrix64F A) { blockA.reshape(A.numRows,A.numCols,false); BlockMatrixOps.convert(A,blockA); return alg.setA(blockA); }
public boolean solveUsingJacobianInverse(DenseMatrix64F spatialVelocity, DenseMatrix64F jacobianMatrix) { computeSubspaceJacobian(subspaceJacobianMatrix, jacobianMatrix); computeSubspaceSpatialVelocity(subspaceSpatialVelocity, spatialVelocity); boolean success = linearAlgebraSolver.setA(subspaceJacobianMatrix); if (success) linearAlgebraSolver.solve(subspaceSpatialVelocity, jointspaceVelocity); return success; }
public boolean solveUsingJacobianInverse(DenseMatrix64F spatialVelocity, DenseMatrix64F jacobianMatrix) { computeSubspaceJacobian(subspaceJacobianMatrix, jacobianMatrix); computeSubspaceSpatialVelocity(subspaceSpatialVelocity, spatialVelocity); boolean success = linearAlgebraSolver.setA(subspaceJacobianMatrix); if (success) linearAlgebraSolver.solve(subspaceSpatialVelocity, jointspaceVelocity); return success; }
public void packInverse(LinearSolver<DenseMatrix64F> solver, BlockDiagSquareMatrix matrixToPack) { for(int i=0;i<blockSizes.length;i++) { tmpMatrix[i].reshape(blockSizes[i] , blockSizes[i]); packBlock(tmpMatrix[i], i, 0, 0); solver.setA(tmpMatrix[i]); solver.invert(tmpMatrix[i]); matrixToPack.setBlock(tmpMatrix[i] ,i); } }
public void packInverse(LinearSolver<DenseMatrix64F> solver, BlockDiagSquareMatrix matrixToPack) { for(int i=0;i<blockSizes.length;i++) { tmpMatrix[i].reshape(blockSizes[i] , blockSizes[i]); packBlock(tmpMatrix[i], i, 0, 0); solver.setA(tmpMatrix[i]); solver.invert(tmpMatrix[i]); matrixToPack.setBlock(tmpMatrix[i] ,i); } }
public void packInverse(LinearSolver<DenseMatrix64F> solver, DenseMatrix64F matrixToPack) { matrixToPack.zero(); for(int i=0;i<blockSizes.length;i++) { tmpMatrix[i].reshape(blockSizes[i] , blockSizes[i]); packBlock(tmpMatrix[i], i, 0, 0); solver.setA(tmpMatrix[i]); solver.invert(tmpMatrix[i]); setBlock(tmpMatrix[i] ,i, matrixToPack); } }
public void packInverse(LinearSolver<DenseMatrix64F> solver, DenseMatrix64F matrixToPack) { matrixToPack.zero(); for(int i=0;i<blockSizes.length;i++) { tmpMatrix[i].reshape(blockSizes[i] , blockSizes[i]); packBlock(tmpMatrix[i], i, 0, 0); solver.setA(tmpMatrix[i]); solver.invert(tmpMatrix[i]); setBlock(tmpMatrix[i] ,i, matrixToPack); } }
private DenseMatrix64F computeOptimumForCurrentActiveSet() { // compute the optimum for the current active set (treat all active constraints as equalities) aCopy.set(quadraticProgram.getA()); bCopy.set(quadraticProgram.getB()); equalityConstraintEnforcer.setConstraint(cActive, dActive); equalityConstraintEnforcer.constrainEquation(aCopy, bCopy); settings.getLinearSolver().setA(aCopy); xBarStar.reshape(quadraticProgram.getSolutionSize(), 1); settings.getLinearSolver().solve(bCopy, xBarStar); return equalityConstraintEnforcer.constrainResult(xBarStar); }