if (!descriptor.isField()) throw new IllegalArgumentException("Name correspods to simple tensor (not a field)."); if (descriptor.getStructuresOfIndices().length - 1 != argIndices.length) throw new IllegalArgumentException("This name corresponds to field with different number of arguments."); if (!descriptor.getStructureOfIndices().isStructureOf(indices)) throw new IllegalArgumentException("Specified indices are not indices of specified tensor."); for (int i = 0; i < argIndices.length; ++i) { if (!descriptor.getStructuresOfIndices()[i + 1].isStructureOf(argIndices[i])) throw new IllegalArgumentException("Arguments indices are inconsistent with field signature."); if (!arguments[i].getIndices().getFree().equalsRegardlessOrder(argIndices[i]))