static Tensor[] powerExpandToArray1(Tensor power, Indicator<Tensor> indicator) { final Tensor[] scalars = ((Product) power.get(0)).getAllScalars(); ArrayList<Tensor> factorOut = new ArrayList<>(scalars.length), leave = new ArrayList<>(scalars.length); Tensor exponent = power.get(1); for (int i = 0; i < scalars.length; ++i) { if (indicator.is(scalars[i])) factorOut.add(Tensors.pow(scalars[i], exponent)); else leave.add(scalars[i]); } if (!leave.isEmpty()) factorOut.add(Tensors.pow( Tensors.multiply(leave.toArray(new Tensor[leave.size()])), exponent)); return factorOut.toArray(new Tensor[factorOut.size()]); }
final Tensor[] scalars; if (power.get(0) instanceof Product) scalars = ((Product) power.get(0)).getAllScalars(); else scalars = new Tensor[]{power.get(0)};
Tensor[] scalars = ((Product) argument).getAllScalars(); if (scalars.length > 1) {