code: private static void elemApplyBinOp(final VarTensor f1, final VarTensor f2, final AlgebraLambda.LambdaBinOp op) {
          checkSameAlgebra(f1, f2);
          Algebra s = f1.s;
          if (f1.size() != f2.size()) {
              throw new IllegalArgumentException("VarTensors are different sizes");
          }
          for (int c = 0; c < f1.values.length; c++) {
              f1.values[c] = op.call(s, f1.values[c], f2.values[c]);
          }
      }
docs: Applies the operation to each element of f1 and f2, which are assumed to be of the same size.
  The result is stored in f1.
  
  @param f1 Input factor 1 and the output factor.
  @param f2 Input factor 2.
  @param op The operation to apply.