|
1515 | 1515 | (kwcall-unless-empty f pa kw-container kw-container)
|
1516 | 1516 | `(call (call (core kwfunc) ,f) ,kw-container ,f ,@pa)))))
|
1517 | 1517 |
|
1518 |
| -;; convert e.g. A'*B to Ac_mul_B(A,B) |
1519 |
| -(define (expand-transposed-op e ops) |
1520 |
| - (let ((a (caddr e)) |
1521 |
| - (b (cadddr e))) |
1522 |
| - (cond ((ctrans? a) |
1523 |
| - (if (ctrans? b) |
1524 |
| - `(call ,(aref ops 0) #;Ac_mul_Bc ,(expand-forms (cadr a)) |
1525 |
| - ,(expand-forms (cadr b))) |
1526 |
| - `(call ,(aref ops 1) #;Ac_mul_B ,(expand-forms (cadr a)) |
1527 |
| - ,(expand-forms b)))) |
1528 |
| - ((ctrans? b) |
1529 |
| - `(call ,(aref ops 2) #;A_mul_Bc ,(expand-forms a) |
1530 |
| - ,(expand-forms (cadr b)))) |
1531 |
| - (else |
1532 |
| - `(call ,(cadr e) ,(expand-forms a) ,(expand-forms b)))))) |
1533 |
| - |
1534 | 1518 | ;; convert `a+=b` to `a=a+b`
|
1535 | 1519 | (define (expand-update-operator- op op= lhs rhs declT)
|
1536 | 1520 | (let ((e (remove-argument-side-effects lhs)))
|
|
2210 | 2194 | ((and (eq? f '^) (length= e 4) (integer? (cadddr e)))
|
2211 | 2195 | (expand-forms
|
2212 | 2196 | `(call (top literal_pow) ^ ,(caddr e) (call (call (core apply_type) (top Val) ,(cadddr e))))))
|
2213 |
| - |
2214 |
| - ((and (eq? f '*) (length= e 4)) |
2215 |
| - (expand-transposed-op |
2216 |
| - e |
2217 |
| - #(Ac_mul_Bc Ac_mul_B A_mul_Bc))) |
2218 |
| - ((and (eq? f '/) (length= e 4)) |
2219 |
| - (expand-transposed-op |
2220 |
| - e |
2221 |
| - #(Ac_rdiv_Bc Ac_rdiv_B A_rdiv_Bc))) |
2222 |
| - ((and (eq? f '\\) (length= e 4)) |
2223 |
| - (expand-transposed-op |
2224 |
| - e |
2225 |
| - #(Ac_ldiv_Bc Ac_ldiv_B A_ldiv_Bc))) |
2226 | 2197 | (else
|
2227 | 2198 | (map expand-forms e))))
|
2228 | 2199 | (map expand-forms e)))
|
|
2394 | 2365 | ,.(apply append rows)))
|
2395 | 2366 | `(call (top typed_vcat) ,t ,@a)))))
|
2396 | 2367 |
|
2397 |
| - '|'| (lambda (e) (expand-forms `(call adjoint ,(cadr e)))) |
| 2368 | + '|'| (lambda (e) (expand-forms `(call postfixapostrophize ,(cadr e)))) |
2398 | 2369 | '|.'| (lambda (e) (begin (deprecation-message (string "The syntax `.'` for transposition is deprecated, "
|
2399 | 2370 | "and the special lowering of `.'` in multiplication "
|
2400 | 2371 | "(`*`), left-division (`\\`), and right-division (`/`) "
|
|
0 commit comments