Skip to content

Commit f0dc06b

Browse files
committed
use =CALC for dims
1 parent e63489e commit f0dc06b

File tree

4 files changed

+52
-129
lines changed

4 files changed

+52
-129
lines changed

Complex/complex.pd

Lines changed: 32 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -205,12 +205,10 @@ pp_defc("gesvd",
205205
integer *info);
206206
EOF
207207
HandleBad => 0,
208-
Pars => '[io]A(2,m,n); int jobu(); int jobvt(); [o]s(minmn); [o]U(2,p,p); [o]VT(2,s,s); int [o]info(); [t]rwork(rworkn);',
208+
Pars => '[io]A(2,m,n); int jobu(); int jobvt(); [o]s(minmn=CALC(PDLMIN($SIZE(m),$SIZE(n)))); [o]U(2,p,p); [o]VT(2,s,s); int [o]info(); [t]rwork(rworkn=CALC(5*$SIZE(minmn)));',
209209
RedoDimsCode => '
210-
$SIZE(minmn) = PDLMIN($SIZE(m),$SIZE(n));
211210
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobu), tmp==1 || tmp==2, $PDL(U), $SIZE(p), $SIZE(m))
212211
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvt), tmp==1 || tmp==2, $PDL(VT), $SIZE(s), $SIZE(n))
213-
$SIZE(rworkn) = 5 * $SIZE(minmn);
214212
',
215213
Code => generate_code '
216214
integer lwork = -1;
@@ -298,9 +296,8 @@ pp_defc("gesdd",
298296
$GENERIC() *rwork, integer *iwork, integer *info);
299297
EOF
300298
HandleBad => 0,
301-
Pars => '[io]A(2,m,n); int jobz(); [o]s(minmn); [o]U(2,p,p); [o]VT(2,s,s); int [o]info(); int [t]iwork(iworkn);',
299+
Pars => '[io]A(2,m,n); int jobz(); [o]s(minmn=CALC(PDLMIN($SIZE(m),$SIZE(n)))); [o]U(2,p,p); [o]VT(2,s,s); int [o]info(); int [t]iwork(iworkn);',
302300
RedoDimsCode => '
303-
$SIZE(minmn) = PDLMIN($SIZE(m),$SIZE(n));
304301
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobz), tmp==1 || (tmp==2) || (tmp==3 && $SIZE(m)<$SIZE(n)), $PDL(U), $SIZE(p), $SIZE(minmn))
305302
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobz), tmp==1 || (tmp==2) || (tmp==3 && $SIZE(m)>=$SIZE(n)), $PDL(VT), $SIZE(s), $SIZE(minmn))
306303
$SIZE(iworkn) = 8 * $SIZE(minmn);
@@ -393,12 +390,11 @@ pp_defc("ggsvd",
393390
integer *info);
394391
EOF
395392
HandleBad => 0,
396-
Pars => '[io]A(2,m,n); int jobu(); int jobv(); int jobq(); [io]B(2,p,n); int [o]k(); int [o]l();[o]alpha(n);[o]beta(n); [o]U(2,q,q); [o]V(2,r,r); [o]Q(2,s,s); int [o]iwork(n); int [o]info(); [t]rwork(rworkn);',
393+
Pars => '[io]A(2,m,n); int jobu(); int jobv(); int jobq(); [io]B(2,p,n); int [o]k(); int [o]l();[o]alpha(n);[o]beta(n); [o]U(2,q,q); [o]V(2,r,r); [o]Q(2,s,s); int [o]iwork(n); int [o]info(); [t]rwork(rworkn=CALC(2*$SIZE(n)));',
397394
RedoDimsCode => '
398395
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobu), tmp, $PDL(U), $SIZE(q), $SIZE(m))
399396
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobv), tmp, $PDL(V), $SIZE(r), $SIZE(p))
400397
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobq), tmp, $PDL(Q), $SIZE(s), $SIZE(n))
401-
$SIZE(rworkn) = 2 * $SIZE(n);
402398
',
403399
Code => generate_code '
404400
char pjobu = \'N\';
@@ -480,11 +476,10 @@ pp_defc("geev",
480476
integer *ldvr, $GENERIC() *work, integer *lwork, $GENERIC() *rwork, integer *info);
481477
EOF
482478
HandleBad => 0,
483-
Pars => 'A(2,n,n); int jobvl(); int jobvr(); [o]w(2,n); [o]vl(2,m,m); [o]vr(2,p,p); int [o]info(); [t]rwork(rworkn);',
479+
Pars => 'A(2,n,n); int jobvl(); int jobvr(); [o]w(2,n); [o]vl(2,m,m); [o]vr(2,p,p); int [o]info(); [t]rwork(rworkn=CALC(2*$SIZE(n)));',
484480
RedoDimsCode => '
485481
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvl), tmp, $PDL(vl), $SIZE(m), $SIZE(n))
486482
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvr), tmp, $PDL(vr), $SIZE(p), $SIZE(n))
487-
$SIZE(rworkn) = 2 * $SIZE(n);
488483
',
489484
Code => generate_code '
490485
char jvl = \'N\';
@@ -543,13 +538,12 @@ pp_defc("geevx",
543538
*work, integer *lwork, $GENERIC() *rwork, integer *info);
544539
EOF
545540
HandleBad => 0,
546-
Pars => '[io]A(2,n,n); int jobvl(); int jobvr(); int balance(); int sense(); [o]w(2,n); [o]vl(2,m,m); [o]vr(2,p,p); int [o]ilo(); int [o]ihi(); [o]scale(n); [o]abnrm(); [o]rconde(q); [o]rcondv(r); int [o]info(); [t]rwork(rworkn);',
541+
Pars => '[io]A(2,n,n); int jobvl(); int jobvr(); int balance(); int sense(); [o]w(2,n); [o]vl(2,m,m); [o]vr(2,p,p); int [o]ilo(); int [o]ihi(); [o]scale(n); [o]abnrm(); [o]rconde(q); [o]rcondv(r); int [o]info(); [t]rwork(rworkn=CALC(2*$SIZE(n)));',
547542
RedoDimsCode => '
548543
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvl), tmp, $PDL(vl), $SIZE(m), $SIZE(n))
549544
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvr), tmp, $PDL(vr), $SIZE(p), $SIZE(n))
550545
PDL_MAYBE_SIZE(PDL_Long, $PDL(sense), tmp == 1 || tmp == 3, $PDL(rconde), $SIZE(q), $SIZE(n))
551546
PDL_MAYBE_SIZE(PDL_Long, $PDL(sense), tmp == 2 || tmp == 3, $PDL(rcondv), $SIZE(r), $SIZE(n))
552-
$SIZE(rworkn) = 2 * $SIZE(n);
553547
',
554548
Code => generate_code '
555549
char jvl = \'N\';
@@ -646,11 +640,10 @@ pp_defc("ggev",
646640
$GENERIC() *rwork, integer *info);
647641
EOF
648642
HandleBad => 0,
649-
Pars => 'A(2,n,n); int [phys]jobvl();int [phys]jobvr();B(2,n,n);[o]alpha(2,n);[o]beta(2,n);[o]VL(2,m,m);[o]VR(2,p,p);int [o]info(); [t]rwork(rworkn);',
643+
Pars => 'A(2,n,n); int [phys]jobvl();int [phys]jobvr();B(2,n,n);[o]alpha(2,n);[o]beta(2,n);[o]VL(2,m,m);[o]VR(2,p,p);int [o]info(); [t]rwork(rworkn=CALC(8*$SIZE(n)));',
650644
RedoDimsCode => '
651645
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvl), tmp, $PDL(VL), $SIZE(m), $SIZE(n))
652646
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvr), tmp, $PDL(VR), $SIZE(p), $SIZE(n))
653-
$SIZE(rworkn) = 8 * $SIZE(n);
654647
',
655648
Code => generate_code '
656649
integer lwork = -1;
@@ -718,13 +711,12 @@ pp_defc("ggevx",
718711
bwork, integer *info);
719712
EOF
720713
HandleBad => 0,
721-
Pars => '[io,phys]A(2,n,n);int balanc();int jobvl();int jobvr();int sense();[io,phys]B(2,n,n);[o]alpha(2,n);[o]beta(2,n);[o]VL(2,m,m);[o]VR(2,p,p);int [o]ilo();int [o]ihi();[o]lscale(n);[o]rscale(n);[o]abnrm();[o]bbnrm();[o]rconde(r);[o]rcondv(s);int [o]info(); [t]rwork(rworkn); int [t]bwork(bworkn); int [t]iwork(iworkn);',
714+
Pars => '[io,phys]A(2,n,n);int balanc();int jobvl();int jobvr();int sense();[io,phys]B(2,n,n);[o]alpha(2,n);[o]beta(2,n);[o]VL(2,m,m);[o]VR(2,p,p);int [o]ilo();int [o]ihi();[o]lscale(n);[o]rscale(n);[o]abnrm();[o]bbnrm();[o]rconde(r);[o]rcondv(s);int [o]info(); [t]rwork(rworkn=CALC(6*$SIZE(n))); int [t]bwork(bworkn); int [t]iwork(iworkn);',
722715
RedoDimsCode => '
723716
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvl), tmp, $PDL(VL), $SIZE(m), $SIZE(n))
724717
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvr), tmp, $PDL(VR), $SIZE(p), $SIZE(n))
725718
PDL_MAYBE_SIZE(PDL_Long, $PDL(sense), tmp != 2, $PDL(rconde), $SIZE(r), $SIZE(n))
726719
PDL_MAYBE_SIZE(PDL_Long, $PDL(sense), tmp != 1, $PDL(rcondv), $SIZE(s), $SIZE(n))
727-
$SIZE(rworkn) = 6 * $SIZE(n);
728720
PDL_MAYBE_SIZE(PDL_Long, $PDL(sense), tmp != 1, $PDL(iwork), $SIZE(iworkn), $SIZE(n) + 2)
729721
PDL_MAYBE_SIZE(PDL_Long, $PDL(sense), tmp == 1 || tmp == 2 || tmp == 3, $PDL(bwork), $SIZE(bworkn), $SIZE(n))
730722
',
@@ -1042,12 +1034,11 @@ pp_defc("gges",
10421034
logical *bwork, integer *info);
10431035
EOF
10441036
HandleBad => 0,
1045-
Pars => '[io]A(2,n,n); int jobvsl();int jobvsr();int sort();[io]B(2,n,n);[o]alpha(2,n);[o]beta(2,n);[o]VSL(2,m,m);[o]VSR(2,p,p);int [o]sdim();int [o]info(); [t]rwork(rworkn); int [t]bwork(bworkn);',
1037+
Pars => '[io]A(2,n,n); int jobvsl();int jobvsr();int sort();[io]B(2,n,n);[o]alpha(2,n);[o]beta(2,n);[o]VSL(2,m,m);[o]VSR(2,p,p);int [o]sdim();int [o]info(); [t]rwork(rworkn=CALC(8*$SIZE(n))); int [t]bwork(bworkn);',
10461038
RedoDimsCode => '
10471039
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvsl), tmp, $PDL(VSL), $SIZE(m), $SIZE(n))
10481040
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvsr), tmp, $PDL(VSR), $SIZE(p), $SIZE(n))
10491041
PDL_MAYBE_SIZE(PDL_Long, $PDL(sort), tmp, $PDL(bwork), $SIZE(bworkn), $SIZE(n))
1050-
$SIZE(rworkn) = 8 * $SIZE(n);
10511042
',
10521043
OtherPars => "SV* select_func" ,
10531044
Code => generate_code '
@@ -1144,13 +1135,11 @@ pp_defc("ggesx",
11441135
integer *info);
11451136
EOF
11461137
HandleBad => 0,
1147-
Pars => '[io]A(2,n,n); int jobvsl();int jobvsr();int sort();int sense();[io]B(2,n,n);[o]alpha(2,n);[o]beta(2,n);[o]VSL(2,m,m);[o]VSR(2,p,p);int [o]sdim();[o]rconde(q=2);[o]rcondv(q=2);int [o]info(); [t]rwork(rworkn); int [t]bwork(bworkn); int [t]iwork(iworkn);',
1138+
Pars => '[io]A(2,n,n); int jobvsl();int jobvsr();int sort();int sense();[io]B(2,n,n);[o]alpha(2,n);[o]beta(2,n);[o]VSL(2,m,m);[o]VSR(2,p,p);int [o]sdim();[o]rconde(q=2);[o]rcondv(q=2);int [o]info(); [t]rwork(rworkn=CALC(8*$SIZE(n))); int [t]bwork(bworkn); int [t]iwork(iworkn=CALC($SIZE(n)+2));',
11481139
RedoDimsCode => '
11491140
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvsl), tmp, $PDL(VSL), $SIZE(m), $SIZE(n))
11501141
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobvsr), tmp, $PDL(VSR), $SIZE(p), $SIZE(n))
11511142
PDL_MAYBE_SIZE(PDL_Long, $PDL(sort), tmp, $PDL(bwork), $SIZE(bworkn), $SIZE(n))
1152-
$SIZE(rworkn) = 8 * $SIZE(n);
1153-
$SIZE(iworkn) = $SIZE(n) + 2;
11541143
',
11551144
OtherPars => "SV* select_func" ,
11561145
Code => generate_code '
@@ -1261,10 +1250,7 @@ pp_defc("heev",
12611250
integer *info);
12621251
EOF
12631252
HandleBad => 0,
1264-
Pars => '[io]A(2,n,n); int jobz(); int uplo(); [o]w(n); int [o]info(); [t]rwork(rworkn);',
1265-
RedoDimsCode => '
1266-
$SIZE(rworkn) = 3*($SIZE(n)-2);
1267-
',
1253+
Pars => '[io]A(2,n,n); int jobz(); int uplo(); [o]w(n); int [o]info(); [t]rwork(rworkn=CALC(3*($SIZE(n)-2)));',
12681254
Code => generate_code '
12691255
char jz = \'N\';
12701256
char puplo = \'U\';
@@ -1398,11 +1384,9 @@ pp_defc("heevx",
13981384
$GENERIC() *rwork, integer *iwork, integer *ifail, integer *info);
13991385
EOF
14001386
HandleBad => 0,
1401-
Pars => 'A(2,n,n); int jobz(); int range(); int uplo(); vl(); vu(); int il(); int iu(); abstol(); int [o]m(); [o]w(n); [o]z(2,p,p);int [o]ifail(n); int [o]info(); [t]rwork(rworkn); int [t]iwork(iworkn);',
1387+
Pars => 'A(2,n,n); int jobz(); int range(); int uplo(); vl(); vu(); int il(); int iu(); abstol(); int [o]m(); [o]w(n); [o]z(2,p,p);int [o]ifail(n); int [o]info(); [t]rwork(rworkn=CALC(7*$SIZE(n))); int [t]iwork(iworkn=CALC(5*$SIZE(n)));',
14021388
RedoDimsCode => '
14031389
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobz), tmp, $PDL(z), $SIZE(p), $SIZE(n))
1404-
$SIZE(rworkn) = 7 * $SIZE(n);
1405-
$SIZE(iworkn) = 5 * $SIZE(n);
14061390
',
14071391
Code => generate_code '
14081392
char jz = \'N\';
@@ -1595,10 +1579,7 @@ pp_defc("hegv",
15951579
$GENERIC() *w, $GENERIC() *work, integer *lwork, $GENERIC() *rwork, integer *info);
15961580
EOF
15971581
HandleBad => 0,
1598-
Pars => '[io]A(2,n,n);int itype();int jobz(); int uplo();[io]B(2,n,n);[o]w(n); int [o]info(); [t]rwork(rworkn);',
1599-
RedoDimsCode => '
1600-
$SIZE(rworkn) = 3*($SIZE(n)-2);
1601-
',
1582+
Pars => '[io]A(2,n,n);int itype();int jobz(); int uplo();[io]B(2,n,n);[o]w(n); int [o]info(); [t]rwork(rworkn=CALC(3*($SIZE(n)-2)));',
16021583
Code => generate_code '
16031584
char jz = \'N\';
16041585
char puplo = \'U\';
@@ -1747,12 +1728,10 @@ EOF
17471728
Pars => '[io]A(2,n,n);int itype();int jobz();int range();
17481729
int uplo();[io]B(2,n,n);vl();vu();int il();
17491730
int iu();abstol();int [o]m();[o]w(n);
1750-
[o]Z(2,p,p);int [o]ifail(n);int [o]info(); [t]rwork(rworkn); int [t]iwork(iworkn);
1731+
[o]Z(2,p,p);int [o]ifail(n);int [o]info(); [t]rwork(rworkn=CALC(7*$SIZE(n))); int [t]iwork(iworkn=CALC(5*$SIZE(n)));
17511732
',
17521733
RedoDimsCode => '
17531734
PDL_MAYBE_SIZE(PDL_Long, $PDL(jobz), tmp, $PDL(Z), $SIZE(p), $SIZE(n))
1754-
$SIZE(rworkn) = 7 * $SIZE(n);
1755-
$SIZE(iworkn) = 5 * $SIZE(n);
17561735
',
17571736
Code => generate_code '
17581737
char jz = \'N\';
@@ -1868,11 +1847,10 @@ pp_defc("gesvx",
18681847
rwork, integer *info);
18691848
EOF
18701849
HandleBad => 0,
1871-
Pars => '[io]A(2,n,n); int trans(); int fact(); [io]B(2,n,m); [io]af(2,n,n); int [io]ipiv(n); int [io]equed(); [o]r(p); [o]c(q); [o]X(2,n,m); [o]rcond(); [o]ferr(m); [o]berr(m); [o]rpvgrw(); int [o]info(); [t]rwork(rworkn); [t]work(rworkn);',
1850+
Pars => '[io]A(2,n,n); int trans(); int fact(); [io]B(2,n,m); [io]af(2,n,n); int [io]ipiv(n); int [io]equed(); [o]r(p); [o]c(q); [o]X(2,n,m); [o]rcond(); [o]ferr(m); [o]berr(m); [o]rpvgrw(); int [o]info(); [t]rwork(rworkn=CALC(4*$SIZE(n))); [t]work(rworkn);',
18721851
RedoDimsCode => '
18731852
$SIZE(p) = $SIZE(n); /* Ubuntu LAPACK 3 writes to r anyway */
18741853
$SIZE(q) = $SIZE(n); /* Ubuntu LAPACK 3 writes to c anyway */
1875-
$SIZE(rworkn) = 4 * $SIZE(n);
18761854
',
18771855
Code => generate_code '
18781856
char ptrans, pfact, pequed;
@@ -2237,11 +2215,9 @@ pp_defc("posvx",
22372215
berr, $GENERIC() *work, $GENERIC() *rwork, integer *info);
22382216
EOF
22392217
HandleBad => 0,
2240-
Pars => '[io]A(2,n,n); int uplo(); int fact(); [io]B(2,n,m); [io]af(2,n,n); int [io]equed(); [o]s(p); [o]X(2,n,m); [o]rcond(); [o]ferr(m); [o]berr(m); int [o]info(); [t]rwork(rworkn); [t]work(workn);',
2218+
Pars => '[io]A(2,n,n); int uplo(); int fact(); [io]B(2,n,m); [io]af(2,n,n); int [io]equed(); [o]s(p); [o]X(2,n,m); [o]rcond(); [o]ferr(m); [o]berr(m); int [o]info(); [t]rwork(rworkn=CALC(2*$SIZE(n))); [t]work(workn=CALC(4*$SIZE(n)));',
22412219
RedoDimsCode => '
22422220
$SIZE(p) = $SIZE(n); /* Ubuntu LAPACK 3 writes to s anyway */
2243-
$SIZE(rworkn) = 2 * $SIZE(n);
2244-
$SIZE(workn) = 4 * $SIZE(n);
22452221
',
22462222
Code => generate_code '
22472223
char pfact;
@@ -2361,10 +2337,7 @@ pp_defc("gelsy",
23612337
lwork, $GENERIC() *rwork, integer *info);
23622338
EOF
23632339
HandleBad => 0,
2364-
Pars => '[io]A(2,m,n); [io]B(2,p,q); rcond(); int [io]jpvt(n); int [o]rank();int [o]info(); [t]rwork(rworkn);',
2365-
RedoDimsCode => '
2366-
$SIZE(rworkn) = 2 * $SIZE(n);
2367-
',
2340+
Pars => '[io]A(2,m,n); [io]B(2,p,q); rcond(); int [io]jpvt(n); int [o]rank();int [o]info(); [t]rwork(rworkn=CALC(2*$SIZE(n)));',
23682341
Code => generate_code '
23692342
integer lwork = -1;
23702343
$GENERIC() tmp_work[2];
@@ -2414,10 +2387,7 @@ pp_defc("gelss",
24142387
lwork, $GENERIC() *rwork, integer *info);
24152388
EOF
24162389
HandleBad => 0,
2417-
Pars => '[io]A(2,m,n); [io]B(2,p,q); rcond(); [o]s(r); int [o]rank();int [o]info(); [t]rwork(rworkn);',
2418-
RedoDimsCode => '
2419-
$SIZE(rworkn) = 5 * PDLMIN($SIZE(m),$SIZE(n));
2420-
',
2390+
Pars => '[io]A(2,m,n); [io]B(2,p,q); rcond(); [o]s(r); int [o]rank();int [o]info(); [t]rwork(rworkn=CALC(5*PDLMIN($SIZE(m),$SIZE(n))));',
24212391
Code => generate_code '
24222392
integer lwork = -1;
24232393
$GENERIC() tmp_work[2];
@@ -2467,9 +2437,8 @@ pp_defc("gelsd",
24672437
lwork, $GENERIC() *rwork, integer *iwork, integer *info);
24682438
EOF
24692439
HandleBad => 0,
2470-
Pars => '[io]A(2,m,n); [io]B(2,p,q); rcond(); [o]s(minmn); int [o]rank();int [o]info(); int [t]iwork(iworkn); [t]rwork(rworkn);',
2440+
Pars => '[io]A(2,m,n); [io]B(2,p,q); rcond(); [o]s(minmn=CALC(PDLMAX(1,PDLMIN($SIZE(m),$SIZE(n))))); int [o]rank();int [o]info(); int [t]iwork(iworkn); [t]rwork(rworkn);',
24712441
RedoDimsCode => '
2472-
$SIZE(minmn) = PDLMAX(1,PDLMIN($SIZE(m),$SIZE(n)));
24732442
integer smlsiz = FORTRAN(ilaenv)(&c_nine, "CGELSD", " ", &c_zero, &c_zero, &c_zero, &c_zero, (ftnlen)6, (ftnlen)1);
24742443
integer size_i = (integer) (log((double) $SIZE(minmn) / (double) (smlsiz + 1)) /log(2.)) + 1;
24752444
$SIZE(iworkn) = $SIZE(minmn) * (3 * PDLMAX(size_i,0) + 11);
@@ -2630,8 +2599,7 @@ pp_defc("getrf",
26302599
lda, integer *ipiv, integer *info);
26312600
EOF
26322601
HandleBad => 0,
2633-
RedoDimsCode => '$SIZE(p) = PDLMIN($SIZE(m),$SIZE(n));',
2634-
Pars => '[io]A(2,m,n); int [o]ipiv(p); int [o]info()',
2602+
Pars => '[io]A(2,m,n); int [o]ipiv(p=CALC(PDLMIN($SIZE(m),$SIZE(n)))); int [o]info()',
26352603
Code => generate_code '
26362604
FORTRAN($TFD(c,z)getrf)(
26372605
&(integer){$SIZE(m)},
@@ -2648,8 +2616,7 @@ pp_defc("getf2",
26482616
lda, integer *ipiv, integer *info);
26492617
EOF
26502618
HandleBad => 0,
2651-
RedoDimsCode => '$SIZE(p) = PDLMIN($SIZE(m),$SIZE(n));',
2652-
Pars => '[io]A(2,m,n); int [o]ipiv(p); int [o]info()',
2619+
Pars => '[io]A(2,m,n); int [o]ipiv(p=CALC(PDLMIN($SIZE(m),$SIZE(n)))); int [o]info()',
26532620
Code => generate_code '
26542621
FORTRAN($TFD(c,z)getf2)(
26552622
&(integer){$SIZE(m)},
@@ -2872,10 +2839,7 @@ pp_defc("sytri",
28722839
lda, integer *ipiv, $GENERIC() *work, integer *info);
28732840
EOF
28742841
HandleBad => 0,
2875-
Pars => '[io]A(2,n,n); int uplo(); int ipiv(n); int [o]info(); [t]work(workn);',
2876-
RedoDimsCode => '
2877-
$SIZE(workn) = 2 * $SIZE(n);
2878-
',
2842+
Pars => '[io]A(2,n,n); int uplo(); int ipiv(n); int [o]info(); [t]work(workn=CALC(2*$SIZE(n)));',
28792843
Code => generate_code '
28802844
char puplo = \'U\';
28812845
if ($uplo())
@@ -2896,10 +2860,7 @@ pp_defc("hetri",
28962860
lda, integer *ipiv, $GENERIC() *work, integer *info);
28972861
EOF
28982862
HandleBad => 0,
2899-
Pars => '[io]A(2,n,n); int uplo(); int ipiv(n); int [o]info(); [t]work(workn);',
2900-
RedoDimsCode => '
2901-
$SIZE(workn) = 2 * $SIZE(n);
2902-
',
2863+
Pars => '[io]A(2,n,n); int uplo(); int ipiv(n); int [o]info(); [t]work(workn=CALC(2*$SIZE(n)));',
29032864
Code => generate_code '
29042865
char puplo = \'U\';
29052866
if ($uplo())
@@ -3225,11 +3186,7 @@ pp_defc("gecon",
32253186
rwork, integer *info);
32263187
EOF
32273188
HandleBad => 0,
3228-
Pars => 'A(2,n,n); int norm(); anorm(); [o]rcond();int [o]info(); [t]rwork(rworkn); [t]work(workn);',
3229-
RedoDimsCode => '
3230-
$SIZE(rworkn) = 2 * $SIZE(n);
3231-
$SIZE(workn) = 4 * $SIZE(n);
3232-
',
3189+
Pars => 'A(2,n,n); int norm(); anorm(); [o]rcond();int [o]info(); [t]rwork(rworkn=CALC(2*$SIZE(n))); [t]work(workn=CALC(4*$SIZE(n)));',
32333190
Code => generate_code '
32343191
char pnorm = \'I\';
32353192
if($norm())
@@ -3253,8 +3210,7 @@ pp_defc("sycon",
32533210
work, integer *info);
32543211
EOF
32553212
HandleBad => 0,
3256-
Pars => 'A(2,n,n); int uplo(); int ipiv(n); anorm(); [o]rcond();int [o]info(); [t]work(workn);',
3257-
RedoDimsCode => '$SIZE(workn) = 4 * $SIZE(n);',
3213+
Pars => 'A(2,n,n); int uplo(); int ipiv(n); anorm(); [o]rcond();int [o]info(); [t]work(workn=CALC(4*$SIZE(n)));',
32583214
Code => generate_code '
32593215
char puplo = \'U\';
32603216
if($uplo())
@@ -3278,8 +3234,7 @@ pp_defc("hecon",
32783234
work, integer *info);
32793235
EOF
32803236
HandleBad => 0,
3281-
Pars => 'A(2,n,n); int uplo(); int ipiv(n); anorm(); [o]rcond();int [o]info(); [t]work(workn);',
3282-
RedoDimsCode => '$SIZE(workn) = 4 * $SIZE(n);',
3237+
Pars => 'A(2,n,n); int uplo(); int ipiv(n); anorm(); [o]rcond();int [o]info(); [t]work(workn=CALC(4*$SIZE(n)));',
32833238
Code => generate_code '
32843239
char puplo = \'U\';
32853240
if($uplo())
@@ -3308,8 +3263,7 @@ pp_defc("pocon",
33083263
rwork, integer *info);
33093264
EOF
33103265
HandleBad => 0,
3311-
Pars => 'A(2,n,n); int uplo(); anorm(); [o]rcond();int [o]info(); [t]work(workn); [t]rwork(n);',
3312-
RedoDimsCode => '$SIZE(workn) = 4 * $SIZE(n);',
3266+
Pars => 'A(2,n,n); int uplo(); anorm(); [o]rcond();int [o]info(); [t]work(workn=CALC(4*$SIZE(n))); [t]rwork(n);',
33133267
Code => generate_code '
33143268
char puplo = \'U\';
33153269
if($uplo())
@@ -3337,8 +3291,7 @@ pp_defc("trcon",
33373291
lda, $GENERIC() *rcond, $GENERIC() *work, $GENERIC() *rwork, integer *info);
33383292
EOF
33393293
HandleBad => 0,
3340-
Pars => 'A(2,n,n); int norm();int uplo();int diag(); [o]rcond();int [o]info(); [t]work(workn); [t]rwork(n);',
3341-
RedoDimsCode => '$SIZE(workn) = 4 * $SIZE(n);',
3294+
Pars => 'A(2,n,n); int norm();int uplo();int diag(); [o]rcond();int [o]info(); [t]work(workn=CALC(4*$SIZE(n))); [t]rwork(n);',
33423295
Code => generate_code '
33433296
char puplo = \'U\';
33443297
char pdiag = \'N\';
@@ -3369,8 +3322,7 @@ pp_defc("geqp3",
33693322
$GENERIC() *rwork, integer *info);
33703323
EOF
33713324
HandleBad => 0,
3372-
Pars => '[io]A(2,m,n); int [io]jpvt(n); [o]tau(2,k); int [o]info(); [t]rwork(rworkn);',
3373-
RedoDimsCode => '$SIZE(rworkn) = 2 * $SIZE(n);',
3325+
Pars => '[io]A(2,m,n); int [io]jpvt(n); [o]tau(2,k); int [o]info(); [t]rwork(rworkn=CALC(2*$SIZE(n)));',
33743326
Code => generate_code '
33753327
integer lwork = -1;
33763328
$GENERIC() tmp_work[2];
@@ -4224,11 +4176,10 @@ pp_defc("trevc",
42244176
$GENERIC() *work, $GENERIC() *rwork, integer *info);
42254177
EOF
42264178
HandleBad => 0,
4227-
Pars => '[io]T(2,n,n); int side();int howmny();int select(q);[o]VL(2,m,m); [o]VR(2,p,p);int [o]m(); int [o]info(); [t]work(workn);',
4179+
Pars => '[io]T(2,n,n); int side();int howmny();int select(q);[o]VL(2,m,m); [o]VR(2,p,p);int [o]m(); int [o]info(); [t]work(workn=CALC(5*$SIZE(n)));',
42284180
RedoDimsCode => '
42294181
PDL_MAYBE_SIZE(PDL_Long, $PDL(side), tmp != 1, $PDL(VL), $SIZE(m), $SIZE(n))
42304182
PDL_MAYBE_SIZE(PDL_Long, $PDL(side), tmp != 2, $PDL(VR), $SIZE(p), $SIZE(n))
4231-
$SIZE(workn) = 5 * $SIZE(n);
42324183
',
42334184
Code => generate_code '
42344185
char pside,phowmny;
@@ -4277,11 +4228,10 @@ pp_defc("tgevc",
42774228
integer *mm, integer *m, $GENERIC() *work, $GENERIC() *rwork, integer *info);
42784229
EOF
42794230
HandleBad => 0,
4280-
Pars => '[io]A(2,n,n); int side();int howmny(); [io]B(2,n,n);int select(q);[o]VL(2,m,m); [o]VR(2,p,p);int [o]m(); int [o]info(); [t]work(workn);',
4231+
Pars => '[io]A(2,n,n); int side();int howmny(); [io]B(2,n,n);int select(q);[o]VL(2,m,m); [o]VR(2,p,p);int [o]m(); int [o]info(); [t]work(workn=CALC(6*$SIZE(n)));',
42814232
RedoDimsCode => '
42824233
PDL_MAYBE_SIZE(PDL_Long, $PDL(side), tmp != 1, $PDL(VL), $SIZE(m), $SIZE(n))
42834234
PDL_MAYBE_SIZE(PDL_Long, $PDL(side), tmp != 2, $PDL(VR), $SIZE(p), $SIZE(n))
4284-
$SIZE(workn) = 6 * $SIZE(n);
42854235
',
42864236
Code => generate_code '
42874237
char pside,phowmny;
@@ -4979,8 +4929,7 @@ pp_def(
49794929
'cmstack',
49804930
DefaultFlow => 1,
49814931
TwoWay => 1,
4982-
Pars => 'x(c,n,m);y(c,n,p);[o]out(c,n,q);',
4983-
RedoDimsCode => '$SIZE(q) = $SIZE(m) + $SIZE(n);',
4932+
Pars => 'x(c,n,m);y(c,n,p);[o]out(c,n,q=CALC($SIZE(m)+$SIZE(n)));',
49844933
Code => '
49854934
loop(m,n,c) %{
49864935
$out(q=>m) = $x();
@@ -5030,11 +4979,7 @@ pp_defc('charpol',
50304979
$GENERIC() *b, integer *ldb, $GENERIC() *beta, $GENERIC() *c__,
50314980
integer *ldc);
50324981
EOF
5033-
Pars => 'A(c=2,n,n);[o]Y(c=2,n,n);[o]out(c=2,p); [t]rwork(rworkn);',
5034-
RedoDimsCode => '
5035-
$SIZE(p) = $SIZE(n) + 1;
5036-
$SIZE(rworkn) = 2 * $SIZE(n) * $SIZE(n);
5037-
',
4982+
Pars => 'A(c=2,n,n);[o]Y(c=2,n,n);[o]out(c=2,p=CALC($SIZE(n)+1)); [t]rwork(rworkn=CALC(2*$SIZE(n)*$SIZE(n)));',
50384983
Code => '
50394984
int i,j,k;
50404985
$GENERIC() tr[2], b[2];

0 commit comments

Comments
 (0)