" I guess the Jx j.dll is compiled without it."

That is correct, both, the provided dll and the so binaries do not support
avx as stated in the release post:

"

Jx 1.1 Release

A Jx v1.1 Extensions Guide, a J/Jx Cheatsheet, a Jx Assertions script
together with links to a Windows 64 bit dll, a Unix 64 bit so binaries
(without avx support) and the patch corresponding to the J806 source
(beta-6) can be found at the link [0].

"


On Mon, Oct 2, 2017 at 10:11 AM, Erling Hellenäs <[email protected]>
wrote:

> Hi all !
>
> These measurements are with Jx j.dll on the latest Beta release.
>
>    n=.500000
>    v=.?~n
>    $v
> 500000
>    10{.v
> 50689 85238 136693 442735 25192 304048 139323 96663 216893 142946
>    ts'-AtTacit-AtTacit-AtTacit-AtTacit-@- v'
> 0.1156 4.19917e6
>    ts'-AtTacit-AtTacit-AtTacit-AtTacit-AtopTacit- v'
> 0.108927 4.20006e6
>    ts'-At-At-At-At-Atop- v'
> 3.30635 4.20416e6
>    ts'-@:-@:-@:-@:-@- v'
> 0.115168 4.19712e6
>
> For some reason my tacit code is on par with the built in code here. The
> performance of my tacit code is doubled!!! in this release compared to
> latest stable. There is no avx on this machine. I guess the Jx j.dll is
> compiled without it. The explicit code is even slower here.
>
> The measurements from the latest stable, taken from below:
>
>    n=.500000
>    v=.?~n
>    $v
> 500000
>    10{.v
> 415593 299586 376558 161399 308885 477430 286004 354448 123594 75795
>    ts'-AtTacit-AtTacit-AtTacit-AtTacit-@- v'
> 0.240852 1.32199e8
>    ts'-AtTacit-AtTacit-AtTacit-AtTacit-AtopTacit- v'
> 0.2369 1.322e8
>    ts'-At-At-At-At-Atop- v'
> 2.96161 1.32204e8
>    ts'-@:-@:-@:-@:-@- v'
> 0.158078 1.32197e8
>
> Cheers,
>
> Erling
>
>
> On 2017-10-02 15:42, Erling Hellenäs wrote:
>
>> Hi all !
>>
>> I tried to create explicit and tacit definitions of our composition
>> conjunctions. I think the result could possibly be used to clarify the
>> descriptions in NuVoc.
>>
>> Opinions are welcome, there are probably still some bugs or
>> misunderstandings of function, there could be interesting aspects to
>> discuss.
>>
>> The printout follows, then my project with definitions, tests and some
>> minor explanations.
>>
>> In the end of the printout there are some performance measurements. The
>> explicit versions are doing bad in those. The built in versions are
>> slightly faster, which could be expected.
>>
>> Cheers,
>>
>> Erling
>>
>> ====Printout=======================
>>
>>    ts=: 6!:2 , 7!:2@]       NB. Time and space
>>
>>    At=: 2 : 0
>> NB. @:
>> u v"_ y
>> :
>> u x v"_ y
>> )
>>
>>    <At- 1 2
>> ┌─────┐
>> │_1 _2│
>> └─────┘
>>    NB. < _1_2
>>    5 <At- 1 2
>> ┌───┐
>> │4 3│
>> └───┘
>>    NB. < 4 3
>>
>>    NB. @:
>>    AtTacit=: 2 : '[: u v'
>>
>>
>>    <AtTacit- 1 2
>> ┌─────┐
>> │_1 _2│
>> └─────┘
>>    NB. < _1_2
>>    5 <AtTacit- 1 2
>> ┌───┐
>> │4 3│
>> └───┘
>>    NB. < 4 3
>>
>>    NB. @:
>>    <AtTacit-
>> [: < -
>>
>>    Atop=: 2 : 0
>> NB. @
>> u At v"v y
>> :
>> x u At v"v y
>> )
>>
>>    <Atop- 1 2
>> ┌──┬──┐
>> │_1│_2│
>> └──┴──┘
>>    NB. _1;_2
>>    5 <Atop- 1 2
>> ┌─┬─┐
>> │4│3│
>> └─┴─┘
>>    NB. 4;3
>>
>>    NB. @
>>    AtopTacit=: 2 : '([: u v)"v'
>>
>>    <AtopTacit- 1 2
>> ┌──┬──┐
>> │_1│_2│
>> └──┴──┘
>>    NB. _1;_2
>>    5 <AtopTacit- 1 2
>> ┌─┬─┐
>> │4│3│
>> └─┴─┘
>>    NB. 4;3
>>
>>    NB. @
>>    <AtopTacit-
>> ([: < -)"0 0 0
>>    <AtopTacit[
>> ([: < [)"_ _ _
>>    <AtopTacit i.
>> ([: < i.)"1 _ _
>>
>>    Appose=: 2 : 0
>> NB. &:
>> u v"_ y
>> :
>> (v"_ x) u v"_ y
>> )
>>
>>    <Appose- 1 2
>> ┌─────┐
>> │_1 _2│
>> └─────┘
>>    NB. < _1 _2
>>    5 ([:<<)Appose- 4 5
>> ┌───┐
>> │1 0│
>> └───┘
>>    NB. < 1 0
>>
>>    NB. &:
>>    ApposeTacitMonadic=: 2 : '[: u [: v ]'
>>    ApposeTacitDyadic=: 2 : '([: v [) u [: v ]'
>>
>>    <ApposeTacitMonadic- 1 2
>> ┌─────┐
>> │_1 _2│
>> └─────┘
>>    NB. < _1 _2
>>    5 ([:<<)ApposeTacitDyadic- 4 5
>> ┌───┐
>> │1 0│
>> └───┘
>>    NB. < 1 0
>>
>>    NB. &:
>>    <ApposeTacitMonadic-
>> [: < [: - ]
>>    ([:<<)ApposeTacitDyadic-
>> ([: - [) ([: < <) [: - ]
>>
>>    Compose=: 2 : 0
>> NB. &
>> u Appose v"v y
>> :
>> x u Appose v"v y
>> )
>>
>>    <Compose- 1 2
>> ┌──┬──┐
>> │_1│_2│
>> └──┴──┘
>>    NB. _1;_2
>>    5 ([:<<)Compose- 4 5
>> ┌─┬─┐
>> │1│0│
>> └─┴─┘
>>    NB. 1;0
>>
>>    NB. &
>>    ComposeTacitMonadic=: 2 : '([: u [: v ])"v'
>>    ComposeTacitDyadic=: 2 : '(([: v [) u [: v ])"v'
>>
>>    <ComposeTacitMonadic- 1 2
>> ┌──┬──┐
>> │_1│_2│
>> └──┴──┘
>>    NB. _1;_2
>>    5 ([:<<)ComposeTacitDyadic- 4 5
>> ┌─┬─┐
>> │1│0│
>> └─┴─┘
>>    NB. 1;0
>>
>>    NB. &
>>    <ComposeTacitMonadic-
>> ([: < [: - ])"0 0 0
>>    ([:<<)ComposeTacitDyadic-
>> (([: - [) ([: < <) [: - ])"0 0 0
>>
>>    UnderRankInfinite=: 2 : 0
>> NB. &.:
>> v"_^:_1 u v"_ y
>> :
>> v"_^:_1 (v"_ x) u v"_ y
>> )
>>
>>    -UnderRankInfinite> 1 2;3 4
>> ┌─────┐
>> │_1 _2│
>> │_3 _4│
>> └─────┘
>>    NB. <2 2 $ _1 _2 -3 -4
>>    (5;6) -UnderRankInfinite> 1 2;3 4
>> ┌───┐
>> │4 3│
>> │3 2│
>> └───┘
>>    NB. < 2 2 $ 4 3 3 2
>>
>>    NB. &.:
>>    UnderRankInfiniteTacitMonadic=: 2 : '[: v^:_1 [: u [: v ]'
>>    UnderRankInfiniteTacitDyadic=: 2 : '[: v^:_1 ([: v [) u [: v ]'
>>
>>    -UnderRankInfiniteTacitMonadic> 1 2;3 4
>> ┌─────┐
>> │_1 _2│
>> │_3 _4│
>> └─────┘
>>    NB. <2 2 $ _1 _2 -3 -4
>>    (5;6) -UnderRankInfiniteTacitDyadic> 1 2;3 4
>> ┌───┐
>> │4 3│
>> │3 2│
>> └───┘
>>    NB. < 2 2 $ 4 3 3 2
>>
>>    NB. &.:
>>    -UnderRankInfiniteTacitMonadic>
>> [: >^:_1 [: - [: > ]
>>    -UnderRankInfiniteTacitDyadic>
>> [: >^:_1 ([: > [) - [: > ]
>>
>>    UnderRankV=: 2 : 0
>> NB. &.
>> u UnderRankInfinite v"v y
>> :
>> x u UnderRankInfinite v"v y
>> )
>>
>>    -UnderRankV> 1 2; 3 4
>> ┌─────┬─────┐
>> │_1 _2│_3 _4│
>> └─────┴─────┘
>>    NB. _1 _2; _3 _4
>>    (5;6) -UnderRankV> 1 2;3 4
>> ┌───┬───┐
>> │4 3│3 2│
>> └───┴───┘
>>    NB. 4 3;3 2
>>
>>    NB. &.
>>    UnderRankVTacitMonadic=: 2 : '([: v^:_1 [: u [: v ])"v'
>>    UnderRankVTacitDyadic=: 2 : '([: v^:_1 ([: v [) u [: v ])"v'
>>
>>    -UnderRankVTacitMonadic> 1 2; 3 4
>> ┌─────┬─────┐
>> │_1 _2│_3 _4│
>> └─────┴─────┘
>>    NB. _1 _2; _3 _4
>>    (5;6) -UnderRankVTacitDyadic> 1 2;3 4
>> ┌───┬───┐
>> │4 3│3 2│
>> └───┴───┘
>>    NB. 4 3;3 2
>>
>>    NB. &.
>>    -UnderRankVTacitMonadic>
>> ([: >^:_1 [: - [: > ])"0 0 0
>>    -UnderRankVTacitDyadic>
>> ([: >^:_1 ([: > [) - [: > ])"0 0 0
>>
>>    n=.500000
>>    v=.?~n
>>    $v
>> 500000
>>    10{.v
>> 415593 299586 376558 161399 308885 477430 286004 354448 123594 75795
>>
>>    ts'-AtTacit-AtTacit-AtTacit-AtTacit-@- v'
>> 0.240852 1.32199e8
>>    ts'-AtTacit-AtTacit-AtTacit-AtTacit-AtopTacit- v'
>> 0.2369 1.322e8
>>    ts'-At-At-At-At-Atop- v'
>> 2.96161 1.32204e8
>>    ts'-@:-@:-@:-@:-@- v'
>> 0.158078 1.32197e8
>>
>> ====================== Project =======================================
>>
>> ts=: 6!:2 , 7!:2@]       NB. Time and space
>>
>> At=: 2 : 0
>> NB. @:
>> u v"_ y
>> :
>> u x v"_ y
>> )
>>
>> <At- 1 2
>> NB. < _1_2
>> 5 <At- 1 2
>> NB. < 4 3
>>
>> NB. @:
>> AtTacit=: 2 : '[: u v'
>>
>>
>> <AtTacit- 1 2
>> NB. < _1_2
>> 5 <AtTacit- 1 2
>> NB. < 4 3
>>
>> NB. @:
>> <AtTacit-
>>
>> Atop=: 2 : 0
>> NB. @
>> u At v"v y
>> :
>> x u At v"v y
>> )
>>
>> <Atop- 1 2
>> NB. _1;_2
>> 5 <Atop- 1 2
>> NB. 4;3
>>
>> NB. @
>> AtopTacit=: 2 : '([: u v)"v'
>>
>> <AtopTacit- 1 2
>> NB. _1;_2
>> 5 <AtopTacit- 1 2
>> NB. 4;3
>>
>> NB. @
>> <AtopTacit-
>> <AtopTacit[
>> <AtopTacit i.
>>
>> Appose=: 2 : 0
>> NB. &:
>> u v"_ y
>> :
>> (v"_ x) u v"_ y
>> )
>>
>> <Appose- 1 2
>> NB. < _1 _2
>> 5 ([:<<)Appose- 4 5
>> NB. < 1 0
>>
>> NB. &:
>> ApposeTacitMonadic=: 2 : '[: u [: v ]'
>> ApposeTacitDyadic=: 2 : '([: v [) u [: v ]'
>>
>> <ApposeTacitMonadic- 1 2
>> NB. < _1 _2
>> 5 ([:<<)ApposeTacitDyadic- 4 5
>> NB. < 1 0
>>
>> NB. &:
>> <ApposeTacitMonadic-
>> ([:<<)ApposeTacitDyadic-
>>
>> Compose=: 2 : 0
>> NB. &
>> u Appose v"v y
>> :
>> x u Appose v"v y
>> )
>>
>> <Compose- 1 2
>> NB. _1;_2
>> 5 ([:<<)Compose- 4 5
>> NB. 1;0
>>
>> NB. &
>> ComposeTacitMonadic=: 2 : '([: u [: v ])"v'
>> ComposeTacitDyadic=: 2 : '(([: v [) u [: v ])"v'
>>
>> <ComposeTacitMonadic- 1 2
>> NB. _1;_2
>> 5 ([:<<)ComposeTacitDyadic- 4 5
>> NB. 1;0
>>
>> NB. &
>> <ComposeTacitMonadic-
>> ([:<<)ComposeTacitDyadic-
>>
>> UnderRankInfinite=: 2 : 0
>> NB. &.:
>> v"_^:_1 u v"_ y
>> :
>> v"_^:_1 (v"_ x) u v"_ y
>> )
>>
>> -UnderRankInfinite> 1 2;3 4
>> NB. <2 2 $ _1 _2 -3 -4
>> (5;6) -UnderRankInfinite> 1 2;3 4
>> NB. < 2 2 $ 4 3 3 2
>>
>> NB. &.:
>> UnderRankInfiniteTacitMonadic=: 2 : '[: v^:_1 [: u [: v ]'
>> UnderRankInfiniteTacitDyadic=: 2 : '[: v^:_1 ([: v [) u [: v ]'
>>
>> -UnderRankInfiniteTacitMonadic> 1 2;3 4
>> NB. <2 2 $ _1 _2 -3 -4
>> (5;6) -UnderRankInfiniteTacitDyadic> 1 2;3 4
>> NB. < 2 2 $ 4 3 3 2
>>
>> NB. &.:
>> -UnderRankInfiniteTacitMonadic>
>> -UnderRankInfiniteTacitDyadic>
>>
>> UnderRankV=: 2 : 0
>> NB. &.
>> u UnderRankInfinite v"v y
>> :
>> x u UnderRankInfinite v"v y
>> )
>>
>> -UnderRankV> 1 2; 3 4
>> NB. _1 _2; _3 _4
>> (5;6) -UnderRankV> 1 2;3 4
>> NB. 4 3;3 2
>>
>> NB. &.
>> UnderRankVTacitMonadic=: 2 : '([: v^:_1 [: u [: v ])"v'
>> UnderRankVTacitDyadic=: 2 : '([: v^:_1 ([: v [) u [: v ])"v'
>>
>> -UnderRankVTacitMonadic> 1 2; 3 4
>> NB. _1 _2; _3 _4
>> (5;6) -UnderRankVTacitDyadic> 1 2;3 4
>> NB. 4 3;3 2
>>
>> NB. &.
>> -UnderRankVTacitMonadic>
>> -UnderRankVTacitDyadic>
>>
>> n=.500000
>> v=.?~n
>> $v
>> 10{.v
>>
>> ts'-AtTacit-AtTacit-AtTacit-AtTacit-@- v'
>> ts'-AtTacit-AtTacit-AtTacit-AtTacit-AtopTacit- v'
>> ts'-At-At-At-At-Atop- v'
>> ts'-@:-@:-@:-@:-@- v'
>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to