Multiply modules with one source (or even zero sources) work, but aren't particularly useful.
If you are using the included XML noise configuration system, Multiply modules can be declared as
<multiply> ...source modules... </multpliy>
164165166167168169170171172173174
public void testCollector() { BivariateFunction bi = new Add(); MultivariateFunction coll = FunctionUtils.collector(bi, 0); Assert.assertEquals(10, coll.value(new double[] {1, 2, 3, 4}), EPS); bi = new Multiply(); coll = FunctionUtils.collector(bi, 1); Assert.assertEquals(24, coll.value(new double[] {1, 2, 3, 4}), EPS); bi = new Max(); coll = FunctionUtils.collector(bi, Double.NEGATIVE_INFINITY);
193194195196197198199200201202203
} } @Test public void testFixingArguments() { UnivariateFunction scaler = FunctionUtils.fix1stArgument(new Multiply(), 10); Assert.assertEquals(1.23456, scaler.value(0.123456), EPS); UnivariateFunction pow1 = new Power(2); UnivariateFunction pow2 = FunctionUtils.fix2ndArgument(new Pow(), 2);
152153154155156157158159160161
UnivariateFunction id = new Identity(); UnivariateFunction m = new Minus(); UnivariateFunction c = FunctionUtils.combine(bi, id, m); Assert.assertEquals(0, c.value(2.3456), EPS); bi = new Multiply(); UnivariateFunction inv = new Inverse(); c = FunctionUtils.combine(bi, id, inv); Assert.assertEquals(1, c.value(2.3456), EPS); }
594595596597598599600
* * @param d Multiplication factor. * @return {@code this}. */ public RealVector mapMultiplyToSelf(double d){ return mapToSelf(FunctionUtils.fix2ndArgument(new Multiply(), d)); }
149150151152153154155156157158
161162163164165166167168169170171
190191192193194195196197198199200
429430431432433434435436437
attachBinaryExpressionOperator(op, exprOp); } @Override public void visit( MultiplyExpression op ) throws FrontendException { BinaryExpressionOperator exprOp = new Multiply(new OperatorKey(DEFAULT_SCOPE, nodeGen.getNextNodeId(DEFAULT_SCOPE))); attachBinaryExpressionOperator(op, exprOp); }