I think it's partially a matter of implementation convenience.

Note, also, that J currently does not support gaussian integers except
for those which can be represented using ieee-754 64 bit binary
floating point, and:

   datatype 100000000000000000000000x 1
extended
   datatype 100000000000000000000000x 1j0
|ill-formed number

Thanks,

-- 
Raul

On Fri, Nov 22, 2019 at 12:44 PM Skip Cave <[email protected]> wrote:
>
> So the question is still: why not simply always store 1j0 as a complex type
> internally?
> What is preventing the J interpreter J from detecting 1j0, and storing it
> internally as a complex value?:
>
> datatype 1j0
>     complex
>
> ?????
>
> Skip Cave
> Cave Consulting LLC
>
>
> On Fri, Nov 22, 2019 at 11:36 AM Don Guinn <[email protected]> wrote:
>
> >    datatype{.0 1j1
> > complex
> >
> > On Fri, Nov 22, 2019, 10:29 AM Skip Cave <[email protected]> wrote:
> >
> > > datatype >.1j0 1j1
> > >
> > > complex
> > >
> > > datatype 1j0 1j0
> > >
> > > integer
> > >
> > >
> > > Why not just always store 1j0 internally as a complex type? 1j1 gets
> > stored
> > > as compex.
> > > Skip Cave
> > > Cave Consulting LLC
> > >
> > >
> > > On Fri, Nov 22, 2019 at 10:58 AM Raul Miller <[email protected]>
> > > wrote:
> > >
> > > > (1 j.0) would be one way of writing a constant that produces a complex
> > > > precision with imaginary part 0.
> > > >
> > > > Thanks,
> > > >
> > > > --
> > > > Raul
> > > >
> > > > On Fri, Nov 22, 2019 at 5:20 AM Henry Rich <[email protected]>
> > wrote:
> > > > >
> > > > > 1/ Because the decoration comes before the value, it was easier to
> > put
> > > > > the 0 at the beginning of the display.  That's a weak argument, but
> > > > > that's why I did it that way.
> > > > >
> > > > > 2/ I was just thinking about this last night.  You're right, for
> > > > > consistency complex values should be decorated.  But the point of the
> > > > > decoration is to have a linear form that faithfully reproduces the
> > > > > value.  1j0 does not produce a complex value.  Before the decoration,
> > > we
> > > > > need to agree on a way to write a constant that produces a complex
> > > > > precision with imaginary part 0.
> > > > >
> > > > > 3/ I defer to Bill on this.
> > > > >
> > > > > Henry Rich
> > > > >
> > > > > On 11/22/2019 1:04 AM, Kirk Iverson wrote:
> > > > > > A recent thread in the programming forum (00 strange?) inspired me
> > to
> > > > look at this new behaviour in 901.
> > > > > >
> > > > > >     NB. Numeric
> > > > > >     datatype&.> 'b i f x c'=. 0 1;(0 1+0);(0 1%1);0 1x;0,1j1-0j1
> > > > > > +-------+-------+--------+--------+-------+
> > > > > > |boolean|integer|floating|extended|complex|
> > > > > > +-------+-------+--------+--------+-------+
> > > > > >     b&+
> > > > > > 0 1&+
> > > > > >     i&+
> > > > > > 00 1&+           <== (1)
> > > > > >     f&+
> > > > > > 0 1.&+
> > > > > >     x&+
> > > > > > 0 1x&+
> > > > > >     c&+
> > > > > > 0 1&+            <== (2)
> > > > > >
> > > > > >
> > > > > >     NB. Character
> > > > > >     d=. (0{a.);'abc'
> > > > > >     'lctrl lascii'=. d
> > > > > >     'uctrl uascii'=. u:&.> d
> > > > > >     'Uctrl Uascii'=. 10 u:&.> d
> > > > > >     datatype&.>lctrl;lascii;uctrl;uascii;Uctrl;Uascii
> > > > > > +-------+-------+-------+-------+--------+--------+
> > > > > > |literal|literal|unicode|unicode|unicode4|unicode4|
> > > > > > +-------+-------+-------+-------+--------+--------+
> > > > > >     lctrl&,
> > > > > > (00{a.)&,
> > > > > >     lascii&,
> > > > > > 'abc'&,
> > > > > >     uctrl&,
> > > > > > (u: 00)&,
> > > > > >     uascii&,
> > > > > > (u: 97 98 99)&,        <== (3)
> > > > > >     Uctrl&,
> > > > > > (10&u: 00)&,
> > > > > >     Uascii&,
> > > > > > (10&u: 97 98 99)&,     <== (3)
> > > > > >
> > > > > >
> > > > > > 1/ Is there a reason that it is the first element of an integer
> > array
> > > > which has extra decoration, rather than the last element (as in the
> > other
> > > > cases)?
> > > > > >
> > > > > > 2/ Shouldn't this display as  0 1j0&+   ?
> > > > > > Also, when interpreting constants in a line of J:
> > > > > > 0 1    is boolean
> > > > > > 00 1   is integer
> > > > > > 0 1.   is floating
> > > > > > 0 1x   is extended (as is  0 1r1)
> > > > > > 0 1j0  is integer
> > > > > > Shouldn't this last one be complex?
> > > > > >
> > > > > > 3/ Can the representations of uascii and Uascii make use of
> > literals
> > > > (like lascii does)?
> > > > > >
> > > > > > /K
> > > > > >
> > > ----------------------------------------------------------------------
> > > > > > 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
> > > >
> > > ----------------------------------------------------------------------
> > > 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to