ts=: 6!:2 , 7!:2@] x=: 11 13 17 19 23 y=: 29 7 23 11 19$'sesquipedalian' (x ($,) y) -: x $, y 1 ts 'x ($,) y' 0.00773981 2.09818e6 ts 'x $, y' 0.0170125 3.14662e6Instances of such special code are listed below:
| = | dyad | word-parallel operation
on Boolean arguments for the following verbs: = < <. <: > >. >: +. +: * *. *: ^ ~: | ! |
|||||||||||||||
| <.@f | both | avoids non-integer intermediate results on extended precision integers | |||||||||||||||
| >.@f | both | avoids non-integer intermediate results on extended precision integers | |||||||||||||||
| + | dyad | also * and - ; on Windows, assembly code for integer arguments for the vector-vector, vector-scalar, and scalar-vector cases | |||||||||||||||
| ^ | dyad | x^y works by repeated multiplication if x is real and y is integral | |||||||||||||||
| m&|@^ | dyad | avoids exponentiation for extended precision arguments | |||||||||||||||
| m&|@(n&^) | monad | avoids exponentiation for extended precision arguments | |||||||||||||||
| +/ .* | dyad | special code | |||||||||||||||
| -/ .* | monad | special code in general; special code for square matrices; special code for arrays of 2-by-2 matrices; see the J 4.05 release notes | |||||||||||||||
| $, | dyad | also ($,)"r ; also {, {., }., e., ; avoids ravel; see the J 4.06 release notes | |||||||||||||||
| [;.0 | both | also ] ; special code for vector or matrix right arguments; see the J 5.01 release notes | |||||||||||||||
| f;.1 | both | also f;._1 f;.2 f;._2 ; avoids building argument cells for several verbs: < $ , # [ ] {. {: <@}. <@}: ; also <&}. <@:}. etc.; special code for sparse Boolean left argument; see the J 4.05 release notes | |||||||||||||||
| f;.3 | both | also f;._3 ; special code for matrix right arguments | |||||||||||||||
| # | dyad | special code for Boolean left arguments | |||||||||||||||
| # i.@# | monad | also (# i.) , etc.; avoids i. on Boolean arguments; see the J 4.06 release notes | |||||||||||||||
| #: i.@(*/) | monad | also (#: i.&(*/)) , etc.; special code for non-negative integer vectors; see the J 4.05 release notes | |||||||||||||||
| =/ | monad | also < <: > >: +. +: * *. *: ~: ; word-parallel operations on Boolean arguments | |||||||||||||||
| +/ | monad | also * and - ; on Windows, assembly code for integer arguments | |||||||||||||||
| ,/ | monad | also ,. ,.&.> ; ; linear time; see the J 4.05 release notes | |||||||||||||||
| m b./ | both | special code for bitwise Boolean functions; see the J 5.01 release notes | |||||||||||||||
| f/@, | monad | also f/@:, f/&, f/&:, ; avoids ravel; see the J 4.05 release notes | |||||||||||||||
| #/. | dyad | avoids building argument cells | |||||||||||||||
| /: | both | also \: ; special code for several data types; special code for arguments with 5 items or less; see the J 4.05 release notes | |||||||||||||||
| /: | dyad | special code when the left and right arguments are the same boolean, literal, integer, or floating point vector; also for /:"1 when the left and right arguments are the same boolean, literal, integer, or floating point arrays; also for \: ; see the J 5.01 release notes | |||||||||||||||
| /:~ | monad | special code for boolean, literal, integer, or floating point vectors; also for /:~"1 and /:"1~ ; also for \: ; see the J 5.01 release notes | |||||||||||||||
| =/\ | monad | also +. *. ~: ; word-parallel operations on Boolean arguments | |||||||||||||||
| +/\ | monad | also * and - ; on Windows, assembly code for integer arguments | |||||||||||||||
| [\ | dyad | also ] and , ; see the J 5.01 release notes | |||||||||||||||
| 2 f/\y | dyad | also 2 f~/\y ; special code for atomic f and vector y ; see the J 4.06 release notes | |||||||||||||||
| m b./\ | monad | special code for bitwise Boolean functions; see the J 5.01 release notes | |||||||||||||||
| =/\. | monad | also < <: > >: +. +: *. *: ~: ; word-parallel operations on Boolean arguments | |||||||||||||||
| +/\. | monad | also * and - ; on Windows, assembly code for integer arguments | |||||||||||||||
| m b./\. | monad | special code for bitwise Boolean functions; see the J 5.01 release notes | |||||||||||||||
| { | dyad | special code for right arguments of several data types; special code for integer left arguments; special code for indexing first two axes | |||||||||||||||
| <"1@[ { ] | dyad | avoids <"1 if left argument is integer array | |||||||||||||||
| a=: c}x,y,:z | - | avoids catenation and lamination; in-place if c is Boolean and a is x or y ; see the J 4.05 release notes | |||||||||||||||
| y=: x i}y | - | in-place | |||||||||||||||
| f"r | both | numerous verbs have integrated rank support: = < <. <: > >. >: + +. +: * *. *: - -: % ^ ~: | |. |: $ , ,. ,: # ! [ ] { {. {: }. }: / /: \ \. \: b. e. i. i: o. p. p: |
|||||||||||||||
| f0`...`fn@.v"0 | monad | special code if f0 , ... , fn are atomic; see the J 5.02 release notes | |||||||||||||||
| i.&1@:< | dyad | special code for Boolean, integer, floating point, or literal vectors or scalars,
for the following functions,
where comp is one of = ~: < <: >: >
(= and ~: only for literal).
See the J 5.01 release notes.
|
|||||||||||||||
| ? | monad | also ?. ; special code if argument is identically 2 | |||||||||||||||
| ? | dyad | also ?. ; special code if left argument is much smaller than right argument | |||||||||||||||
| E. | monad | special code for Boolean and literal vector arguments | |||||||||||||||
| i. | monad | also i: ; special case for length-1 arguments | |||||||||||||||
| i. | dyad | also e. and i: ; special code for several data types; special code for i.!.0 ; special code for the monad i.~ or x i. x ; special code for arguments with many identical columns (see the J 4.05 release notes) |