ExprNAryOp::ExprNAryOp(const Array<const ExprNode>& _args, const Dim& dim) : ExprNode(max_height(_args)+1, nary_size(_args), dim), args(_args), nb_args(_args.size()) { for (int i=0; i<nb_args; i++) { ((ExprNode&) args[i]).fathers.add(*this); } }
ExprNAryOp::ExprNAryOp(const ExprNode** _args, int n, const Dim& dim) : ExprNode(max_height(_args,n)+1, nary_size(_args,n), dim), nb_args(n) { args = new const ExprNode*[n]; for (int i=0; i<n; i++) { args[i]=_args[i]; ((ExprNode&) *args[i]).fathers.add(*this); } }
ExprNAryOp::ExprNAryOp(const ExprNode** _args, int n, const Dim& dim) : ExprNode(max_height(_args,n)+1, nary_size(_args,n), dim), nb_args(n) { args = new const ExprNode*[n]; for (int i=0; i<n; i++) { args[i]=_args[i]; ((ExprNode*&) args[i]->father)=this; } }