internal ValueNode(int id, int?parentId, TreeNodePosition pos, object value) : base(id, parentId, pos) { switch (value) { case Tensor _: NodeType = ValueNodeType.TENSOR; break; case IndexSet _: NodeType = ValueNodeType.INDEXSET; break; case null: NodeType = ValueNodeType.VARIABLE; break; default: throw new NotSupportedException($"Unknown value type: {value.GetType().Name}."); } Value = value; }
internal OperatorNode(int id, int?parentId, TreeNodePosition pos, TensorOp op) : base(id, parentId, pos) { Op = op; }
protected TreeNode(int id, int?parentId, TreeNodePosition pos) { Id = id; ParentId = parentId; Position = pos; }