if(p
->type
!= DA
|| q
->type
!= DA
)
param
[2] = idx
.dim
[idx
.rank
];
if(param
[2] != q
->dim
[0])
param
[3] = q
->size
/param
[2];
idx
.dim
[idx
.rank
++] = q
->dim
[i
];
r
= newdat(DA
, idx
.rank
, size());
copy(IN
, idx
.dim
, r
->dim
, idx
.rank
);
data (*f1
)(), (*f2
)(), d
;
d
= (*f2
)(dp1
[a
], dp2
[b
]);
if(p
->type
!= DA
|| q
->type
!= DA
)
idx
.dim
[idx
.rank
++] = q
->dim
[i
];
r
= newdat(DA
, idx
.rank
, size());
copy(IN
, idx
.dim
, r
->dim
, idx
.rank
);
for(i
=0; i
<p
->size
; i
++) {
*dp
++ = (*f
)(datum
, *dp2
++);