- while (1) {
- exvector term;
- term=expanded_seq;
- for (l=0; l<number_of_adds; l++) {
- GINAC_ASSERT(is_ex_exactly_of_type(expanded_seq[positions_of_adds[l]],add));
- const add & addref=ex_to<add>(expanded_seq[positions_of_adds[l]]);
- term[positions_of_adds[l]]=addref.recombine_pair_to_ex(addref.seq[k[l]]);
- }
- distrseq.push_back((new ncmul(term,1))->setflag(status_flags::dynallocated |
- status_flags::expanded));
+ while (true) {
+ exvector term = expanded_seq;
+ for (int i=0; i<number_of_adds; i++)
+ term[positions_of_adds[i]] = expanded_seq[positions_of_adds[i]].op(k[i]);
+ distrseq.push_back((new ncmul(term, true))->
+ setflag(status_flags::dynallocated | (options == 0 ? status_flags::expanded : 0)));