/** * Multiplies the two polynomials together. * @param a Polynomial * @param b Polynomial * @param result Optional storage parameter for the results. Must be have enough coefficients to store the results. * If null a new instance is declared. * @return Results of the multiplication */ public static Polynomial multiply( Polynomial a , Polynomial b , Polynomial result ) { int N = Math.max(0,a.size() + b.size() - 1); if( result == null ) { result = new Polynomial(N); } else { if( result.size < N ) throw new IllegalArgumentException("Unexpected length of 'result'"); result.zero(); } for( int i = 0; i < a.size; i++ ) { double coef = a.c[i]; int index = i; for( int j = 0; j < b.size; j++ ) { result.c[index++] += coef*b.c[j]; } } return result; }
/** * Multiplies the two polynomials together. * @param a Polynomial * @param b Polynomial * @param result Optional storage parameter for the results. Must be have enough coefficients to store the results. * If null a new instance is declared. * @return Results of the multiplication */ public static Polynomial multiply( Polynomial a , Polynomial b , Polynomial result ) { int N = Math.max(0,a.size() + b.size() - 1); if( result == null ) { result = new Polynomial(N); } else { if( result.size < N ) throw new IllegalArgumentException("Unexpected length of 'result'"); result.zero(); } for( int i = 0; i < a.size; i++ ) { double coef = a.c[i]; int index = i; for( int j = 0; j < b.size; j++ ) { result.c[index++] += coef*b.c[j]; } } return result; }