public TensorContraction(BinaryExpression expr, TensorIndexExpression tie, params Dimension[] shape) : base(expr, shape) { { expr.ThrowIfNotType <TensorExpression>(); this.LHSTensor = tie.LHSTensor; this.LHSIndexSet = tie.LHSIndexSet; } }
public static TensorIndexExpression Sum(TensorIndexExpression l) => new TensorIndexExpression(GetOpMethodCall("Sum", l));
private static TensorIndexExpression Op_Min(TensorIndexExpression l) => null;
private static TensorIndexExpression Op_Product(TensorIndexExpression l) => null;
public static TensorIndexExpression Mean(TensorIndexExpression l) { var mulExpr = l.GetDimensionProductExpression(); return(Sum(l) / mulExpr); }
public static TensorIndexExpression Min(TensorIndexExpression l) => new TensorIndexExpression(GetOpMethodCall("Min", l));
public static TensorIndexExpression Product(TensorIndexExpression l) => new TensorIndexExpression(GetOpMethodCall("Product", l));
public TensorIndexExpression this[TensorIndexExpression e] => Operation(e);
public static TensorIndexExpression Square(TensorIndexExpression l) => l * l;
public Scalar(string name, TensorIndexExpression expr) : this(name) { this.ContractionDefinition = (null, new TensorContraction(expr, this)); }
public TensorContraction(TensorIndexExpression expr, Tensor lhsTensor, IndexSet lhsIndexSet, params Dimension[] shape) : base(expr, shape) { this.LHSTensor = lhsTensor; this.LHSIndexSet = lhsIndexSet; }
public TensorContraction(TensorIndexExpression expr, Tensor lhsTensor) : base(expr) { this.LHSTensor = lhsTensor; }