@Override public boolean solve(DMatrixRMaj Y, DMatrixRMaj step) { solver.solve(Y,step); return true; } }
@Override public boolean solve(DMatrixRMaj Y, DMatrixRMaj step) { solver.solve(Y,step); return true; }
public static void invert( LinearSolver<DenseMatrix64F> solver , RowD1Matrix64F A , DenseMatrix64F A_inv ) { if( A.numRows != A_inv.numRows || A.numCols != A_inv.numCols) { throw new IllegalArgumentException("A and A_inv must have the same dimensions"); } CommonOps.setIdentity(A_inv); solver.solve(A_inv,A_inv); } }
public static void invert( LinearSolver<DenseMatrix64F> solver , RowD1Matrix64F A , DenseMatrix64F A_inv ) { if( A.numRows != A_inv.numRows || A.numCols != A_inv.numCols) { throw new IllegalArgumentException("A and A_inv must have the same dimensions"); } CommonOps.setIdentity(A_inv); solver.solve(A_inv,A_inv); } }
@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 static void invert( LinearSolver<CDenseMatrix64F> solver , CDenseMatrix64F A , CDenseMatrix64F A_inv , CDenseMatrix64F storage) { if( A.numRows != A_inv.numRows || A.numCols != A_inv.numCols) { throw new IllegalArgumentException("A and A_inv must have the same dimensions"); } CCommonOps.setIdentity(storage); solver.solve(storage,A_inv); }
public static void invert( LinearSolver<CDenseMatrix64F> solver , CDenseMatrix64F A , CDenseMatrix64F A_inv ) { if( A.numRows != A_inv.numRows || A.numCols != A_inv.numCols) { throw new IllegalArgumentException("A and A_inv must have the same dimensions"); } CCommonOps.setIdentity(A_inv); solver.solve(A_inv,A_inv); } }
@Override public void solve(DenseMatrix64F solutionToPack, DenseMatrix64F vector) { if (!solver.setA(jacobianMatrix)) throw new RuntimeException("jacobian is singular"); solver.solve(vector, solutionToPack); }
public static void invert( LinearSolver<DenseMatrix64F> solver , RowD1Matrix64F A , DenseMatrix64F A_inv , DenseMatrix64F storage) { if( A.numRows != A_inv.numRows || A.numCols != A_inv.numCols) { throw new IllegalArgumentException("A and A_inv must have the same dimensions"); } CommonOps.setIdentity(storage); solver.solve(storage,A_inv); }
public static void invert( LinearSolver<DenseMatrix64F> solver , RowD1Matrix64F A , DenseMatrix64F A_inv ) { if( A.numRows != A_inv.numRows || A.numCols != A_inv.numCols) { throw new IllegalArgumentException("A and A_inv must have the same dimensions"); } CommonOps.setIdentity(A_inv); solver.solve(A_inv,A_inv); } }
public void solveForCoefficients() { solver.setA(constraintMatrix); solver.solve(constraintVector, coefficientVector); }
public static void invert( LinearSolver<DenseMatrix64F> solver , RowD1Matrix64F A , DenseMatrix64F A_inv , DenseMatrix64F storage) { if( A.numRows != A_inv.numRows || A.numCols != A_inv.numCols) { throw new IllegalArgumentException("A and A_inv must have the same dimensions"); } CommonOps.setIdentity(storage); solver.solve(storage,A_inv); }
public static void invert( LinearSolver<DenseMatrix64F> solver , RowD1Matrix64F A , DenseMatrix64F A_inv , DenseMatrix64F storage) { if( A.numRows != A_inv.numRows || A.numCols != A_inv.numCols) { throw new IllegalArgumentException("A and A_inv must have the same dimensions"); } CommonOps.setIdentity(storage); solver.solve(storage,A_inv); }
private void solveForCoefficients() { solver.setA(constraintMatrix); solver.solve(constraintVector, coefficientVector); }
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 computeRhoGivenQddot(DenseMatrix64F floatingBaseMassMatrix, DenseMatrix64F floatingBaseCoriolisMatrix, DenseMatrix64F floatingBaseContactForceJacobianMatrix, DenseMatrix64F qddot, DenseMatrix64F rhoToPack) { computeJacobianTranspose(floatingBaseContactForceJacobianMatrix, matrixTranspose); CommonOps.multAdd(floatingBaseMassMatrix, qddot, floatingBaseCoriolisMatrix); pseudoInverseSolver.setA(matrixTranspose); pseudoInverseSolver.solve(floatingBaseCoriolisMatrix, rhoToPack); }
public void computeQddotGivenRho(DenseMatrix64F floatingBaseMassMatrix, DenseMatrix64F floatingBaseCoriolisMatrix, DenseMatrix64F floatingBaseContactForceJacobianMatrix, DenseMatrix64F qddotToPack, DenseMatrix64F rho) { computeJacobianTranspose(floatingBaseContactForceJacobianMatrix, matrixTranspose); CommonOps.scale(-1.0, floatingBaseCoriolisMatrix); CommonOps.multAdd(matrixTranspose, rho, floatingBaseCoriolisMatrix); pseudoInverseSolver.setA(floatingBaseMassMatrix); pseudoInverseSolver.solve(floatingBaseCoriolisMatrix, qddotToPack); }
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); }