static COMMAND_FUNC( do_gen_xpose ) { Data_Obj *dp; int d1,d2; dp = pick_obj(""); d1=(int)how_many("dimension index #1"); d2=(int)how_many("dimension index #2"); if( dp == NULL ) return; gen_xpose(dp,d1,d2); }
void transpose(QSP_ARG_DECL Data_Obj *dpto,Data_Obj *dpfr) { /* new version using gen_xpose */ Data_Obj *tmp_dp; Vec_Obj_Args oa1, *oap=&oa1; // BUG use a macro for this... tmp_dp=NEW_DOBJ; OBJ_COPY_FROM(tmp_dp,dpfr); // after the copy, the shape pointer is the same as the parent's... DUP_OBJ_SHAPE(tmp_dp,dpfr); gen_xpose(tmp_dp,1,2); /* switch rows, cols */ setvarg2(oap,dpto,tmp_dp); perf_vfunc(QSP_ARG FVMOV,oap); // tmp_dp has no resources except is shape... rls_shape( OBJ_SHAPE(tmp_dp) ); givbuf(tmp_dp); }