Condense

From NARS2000
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Z←<R    or    Z←<[X] R converts R to a Hypercomplex array if (⍴R)[X]∊2 4 8 or a Real array if (⍴R)[X]=1.
X is an optional numeric singleton axis with X∊⍳⍴⍴R &mddash; otherwise (including if R is a scalar), an AXIS ERROR is signalled. If [X] is omitted, the operation applies to the last axis.
R is an arbitrary Real numeric array, i.e., Fixed-Precision Boolean, Integer, Floating Point, Arithmetic Progression Array, or Multiple-Precision Integer/Rational or Floating Point — otherwise, a DOMAIN ERROR is signalled. The X-axis length (⍴R)[X] must be 1, 2, 4, or 8 — otherwise, a LENGTH ERROR is signalled.
Z is the corresponding Real or Hypercomplex array of shape (X≠⍳⍴⍴R)/⍴R using the numbers along the X-axis of R as the coefficients of the resulting Real or Hypercomplex array. If
  • (⍴R)[X] is 1, the result is an array of Real numbers,
  • (⍴R)[X] is 2, the result is an array of Complex numbers,
  • (⍴R)[X] is 4, the result is an array of Quaternion numbers,
  • (⍴R)[X] is 8, the result is an array of Octonion numbers.


For example,

      <23 23       <10 20 10J20       <2 4⍴⍳8 1i2j3k4 5i6j7k8       <[1] 2 4⍴⍳8 1J5 2J6 3J7 4J8       <2 8⍴(⍳8),⌽⍳8 1i2j3k4l5ij6jk7kl8 8i7j6k5l4ij3jk2kl1       <[1] 2 8⍴(⍳8),⌽⍳8 1J8 2J7 3J6 4J5 5J4 6J3 7J2 8J1       ⍴⎕←<2 3 1⍴⍳6 1 2 3 4 5 6 2 3       ⍴⎕←<2 3 2⍴(⍳6),⌽⍳6 1J2 3J4 5J6 6J5 4J3 2J1 2 3       ⍴⎕←<[1] 2 3 2⍴(⍳6),⌽⍳6 1J6 2J5 3J4 4J3 5J2 6J1 3 2       ⍴⎕←<2 3 4⍴(⍳12),⌽⍳12  1i2j3k4   5i6j7k8 9i10j11k12 12i11j10k9 8i7j6k5 4i3j2k1 2 3       ⍴⎕←<2 3 8⍴(⍳24),⌽⍳24  1i2j3k4l5ij6jk7kl8         9i10j11k12l13ij14jk15kl16 17i18j19k20l21ij22jk23kl24 24i23j22k21l20ij19jk18kl17 16i15j14k13l12ij11jk10kl9   8i7j6k5l4ij3jk2kl1 2 3

Identities

R ←→ < > R   for all Real (1==R) R (see Dilate for the definition of monadic Right Caret)
R ←→ <[X] >[X] R   for all Real (1==R) R
R ←→ > < R   for all R with (¯1↑⍴ R)∊1 2 4 8
1/R ←→ > < R   for all R with (¯1↑⍴1/R)∊1 2 4 8
R ←→ >[X] <[X] R   for all non-scalar R with (⍴R)[X]∊1 2 4 8

Acknowledgements

This symbol and its name were suggested by David A. Rabenhorst.