|
|
|
= |
dyad |
word-parallel operation
on Boolean arguments for the following verbs:
= < <. <: > >. >: +. +: * *. *: ^ ~: | ! |
<.@f |
both |
also >.@f ; avoids non-integer intermediate results on extended precision integers |
<.@% |
dyad |
also <.@:% >.@% >.@:% ; special code on integer arguments;
see the J6.02 release notes |
i.<./ |
monad |
also i.>./ and i:<./ and i:>./ ;
special code for integer and floating point lists;
see the J 5.04 release notes |
+ |
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 integer arguments |
m&|@(n&^) |
monad |
avoids exponentiation for integer arguments |
{&x^:a: |
monad |
special code for integer list x ;
see the J 5.04 release notes |
{~^:a: |
dyad |
special code;
see the J 5.04 release notes |
f@]^:g |
dyad |
applies f instead of x&(f@]) on each iteration;
see the J 6.01 release notes |
| |
dyad |
special code when the left argument is a positive power of 2;
see the J 6.02 release notes |
+/ .* |
dyad |
also +./ .* and ~:/ .*. ;
special code in general;
special code for Boolean left or right arguments and for vector right arguments;
see the J 5.04 and
J 6.01 release notes |
-/ .* |
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 |
x=.x,y |
- |
also =: ; in place;
see the J 5.03 release notes |
;@:(<@u;.n) |
dyad |
special code;
see the J 5.03 release notes |
;@:{ |
dyad |
special code;
see the J 5.03 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.;
see the J 4.05 release notes |
f;.1 |
both |
also f;._1 f;.2 f;._2 ;
special code for sparse Boolean left argument;
see the J 4.06 release notes |
f;.1 |
both |
also f;._1 f;.2 f;._2 ;
special code when the result of f on each cut is
boxed and atomic;
see the J 5.03 release notes |
f/;.1 |
both |
also f;._1 f;.2 f;._2 ;
special code for atomic verbs = < + +. * etc.;
see the J 5.03 release notes |
f;.3 |
both |
also f;._3 ;
special code for matrix right arguments |
;@:(<@u;.n) |
dyad |
special code;
see the J 5.03 release notes |
# |
dyad |
special code for Boolean left arguments |
#: |
dyad |
special code for (0,d)#:y where d is a positive
power of 2 and y is integer;
see the J 6.02 release notes |
#: i.@(*/) |
monad |
also (#: i.&(*/)) , etc.;
special code for non-negative integer vectors;
see the J 4.05 release notes |
x&(128!:3) |
monad |
special code to pre-compute look-up table of CRC values for each byte |
=/"r |
monad |
also < <: > >: +. +: * *. *: ~: ;
word-parallel operations on Boolean arguments; also special
code for insert over an axis of length 2;
see the J 5.03 release notes |
+/ |
monad |
also * and - ; on Windows,
assembly code for integer arguments |
,/ |
monad |
also ,. ; ,&.> ,.&.> ; linear time;
see the J 4.05
and J 7.01 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 |
f/@:g |
dyad |
also [: f/ g ; special code for
atomic f and g ; further optimizations for +/@:g ;
see the J 6.01 release notes |
#/. |
dyad |
avoids building argument cells;
see the J 5.03 release notes |
+//. |
monad |
also +. *. = ~: <. <: >. >: 17 b. 22 b. 23 b. ;
avoids building argument cells;
see the J 6.01 release notes |
+//. |
dyad |
also +. *. <. >. = ~: n b. for various vector
right arguments; avoids building argument cells;
see the J 5.03 and
J 6.02 release notes |
</. i.@# |
monad |
also x</.i.#x ; special code;
see the J 5.03 release notes |
({.,#)/. |
dyad |
also (#,{.)/. ; special code;
see the J 5.04 release notes |
(+/%#)/. |
dyad |
avoids building argument cells;
see the J 6.02 release notes |
+//.@(*/) |
dyad |
also ~://.@(*./) ~://.@(+./) +//.@(*./) +//.@(+./) (22 b.)//.@(17 b./) ;
avoids building argument cells;
see the J 6.01 release notes |
/: |
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 /:@:/: and /:&/: etc.; special code;
see the J 5.04 release notes |
{/: |
dyad |
also {/:~ ; special code for scalar integer left argument and integer or floating point vector right argument;
see the J 6.03 release notes |
#\ |
monad |
special code; see the J 7.01 release notes |
=/\ |
monad |
also +. *. ~: ;
word-parallel operations on Boolean arguments |
+/\ |
monad |
also * and - ; on Windows,
assembly code for integer arguments |
+/\ |
dyad |
also <. >. +. *. = ~: m b. for atomic m e. 17 22 23 25 ;
special code for positive left arguments
and boolean, integer, or floating point right arguments;
see the J 5.03 and
J 6.02 release notes |
[\ |
dyad |
also ] and , ;
see the J 5.01 release notes |
2 f/\y |
dyad |
special code;
see the J 4.06
and J 6.01 release notes |
m b./\ |
monad |
special code for bitwise Boolean functions;
see the J 5.01 release notes |
(+/%#)\ |
dyad |
special code for positive left arguments and integer and floating point right arguments;
see the J 5.03 release notes |
#\. |
monad |
special code; see the J 7.01 release notes |
u/\. |
monad |
special code |
=/\. |
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 |
f/\. |
dyad |
special code for atomic associative f ;
see the J 6.02 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 |
p{~q i.] |
monad |
also (q i.]) { p"_ and q&i.{p"_ ;
special code when p and q are literal lists;
see the J 6.02 release notes |
{/: |
dyad |
also {/:~ ; special code for scalar integer left argument and integer or floating point vector right argument;
see the J 6.03 release notes |
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 |
y=: y i}~ x |
- |
in-place;
see the J 6.03 release notes |
f"r |
both |
numerous verbs have integrated rank support
monad and dyad | | <. <: < >. >: + +. +: * *. *: - -: % ^ ~: | |. |: , ,: ! /: \: [ ] {. }. o. |
monad only | | -. %: ^. #. ,. / \ \. {: }: @. ? A. H. j. p. p: q: r. t. x: /:@/: +/%# |
dyad only | | = > $ # { e. i. i: $, m b. -.@-: |
For (+/%#)"r see the J 6.02 release notes.
|
^@o. |
monad |
special code; see the J 7.01 release notes
|
"."0@": |
monad |
also @: or & or &: instead of @ ;
special code; see the J 6.01 release notes
|
f0`...`fn@.v"0 |
monad |
special code if f0 , ... , fn are atomic;
see the J 5.02 release notes |
x&(128!:3) |
monad |
special code to pre-compute look-up table of CRC values for each byte |
m&i. |
monad |
also m&i: -.&m e.&m ;
see the J 5.04 release notes |
u&.(a.&i.) |
monad |
special code if u-:u"0 ;
see the J 6.02 release notes |
m b./&.(a.&i.) |
monad |
avoids conversion to and from integers;
see the J 6.02 release notes |
m b.&.(a.&i.) |
dyad |
avoids conversion to and from integers;
see the J 6.02 release notes |
? |
monad |
also ?. ; special code if argument is identically 2 |
?@$ |
dyad |
also ?. ; also ?@# ; also [: ? $ ; special code;
see the J 5.03 release notes |
e.i.0: |
dyad |
see the f i.0: entry below
|
E. |
monad |
special code for Boolean and literal vector arguments |
E.i.1: |
dyad |
see the f i.0: entry below
|
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 |
f i.0: |
dyad |
special code for the following functions;
see the J 5.01,
J 5.03, and
J 5.04 release notes.
f i. 0: | |
i.&0@:f | |
first place where not x f y |
f i. 1: | |
i.&1@:f | |
first place where x f y |
f i: 0: | |
i:&0@:f | |
last place where not x f y |
f i: 1: | |
i:&1@:f | |
last place where x f y |
[: + / f | |
+ /@:f | |
number of places where x f y |
[: +./ f | |
+./@:f | |
x f y anywhere? |
[: *./ f | |
*./@:f | |
x f y everywhere? |
[: I. f | |
I. @:f | |
indices where x f y |
Notes: |
| | |
f is one of the verbs = ~: < <: > >: E. e. |
| | |
Special code is available only for Boolean, integer, floating point, literal,
and symbol arguments |
| | |
Special code is used only for atoms and lists if f is not e. |
| | |
If f is E. , special code only
for E.i.1: +/@:E. +./@:E. I.@:E. |
|
i.<./ |
monad |
also i.>./ and i:<./ and i:>./ ;
special code for integer and floating point lists;
see the J 5.04 release notes |
m&i. |
monad |
also m&i: -.&m e.&m ;
see the J 5.04 release notes |
p {~ q i. ] |
monad |
also (q i. ]) { p"_ and q&i. { p"_ ;
special code when p and q are literal lists;
see the J 6.02 release notes |
I.@:< |
dyad |
see the f i.0: entry above
|
+/%# |
monad |
special code for the following:
|