Bob,

Thanks! Your hint was exactly what I needed, to help me make my output
"imaginary-zero-restorer" function.

    zr =. (' ';'j')rplc~ ]  NB. use the "string replace" verb to put the
'j' back in the complex number.

    zr '1 0'
1j0                           NB. we can do it!

Just need to get the real & imaginary parts of a complex number into a text
string. Robert showed us how to do that:
   +. 1j0
1 0
    $ +. 1j0

2
​                    NB. Got the complex parts as two separate numbers,
thanks to Robert. Now convert to a string.​

   ": +. 1j0
1 0                 NB. This is a string.

    $ ": +. 1j0

3                    NB. See? A string 3 characters long.


   zr ": +. 1j0

1j0                     NB. Eureka! We did it. The Zero Restorer verb!

   $ zr ": +. 1j0

3                        NB. Of course, the zero-restored display is a
string as well. It has to be, for J to display the zero.

   zr ": +. _3.1j0.5

_3.1j0.5              NB. Our Zero Restorer doesn't affect the display of
other complex numbers.

   ". zr ": +. 1j0

1                         NB. Of course if you let J display the complex
number natively, it steals the zero.


Is there a more compact way to define the Zero Restorer verb? The
string-replace function is probably overkill for what we want to do, and I
haven't figured out how to include the Real/Imaginary (+. ) and the Format
(":) inside the Zero Restorer Function.


When you think about it, something like J's complex notation is the kind of
notation that you would need for a native unum-based computational system.
We don't want to use 'j' for the separator, it's already taken. What if we
defined a new number format in J, the unum format, that used a 'u' instead
of a 'j' for intervals. 4 bit unums would look something like this:


 UNUMS

┌──┬─────┬──┬─────┬──┬───────┬────┬──────┬─┬─────┬───┬─────┬─┬───┬─┬───┐

│__ │ __u_2  │ _2│_2u_1  │_1 │ _1u_1r2   │ _1r2  │  _1r2u0  │0│  0u1r2 │
1r2 │ 1r2u1  │ 1 │1u2 │2│ 2u_ │

└──┴─────┴──┴─────┴──┴───────┴────┴──────┴─┴─────┴───┴─────┴─┴───┴─┴───┘



If this was a native format, then we could just do all our unum
calculations easily. No notation hassle.


Skip

Skip Cave
Cave Consulting LLC

On Thu, Aug 18, 2016 at 11:58 PM, robert therriault <[email protected]>
wrote:

> Hey Skip,
>
> You could capture that structure yourself using +. couldn't you? It may
> not be as nice as having the display done
> natively, but the information is not really thrown away.
>
>  +. 3j0
> 3 0
>    +. 3
> 3 0
>
> Cheers, bob
>
> > On Aug 18, 2016, at 9:44 PM, Skip Cave <[email protected]> wrote:
> >
> > If we did have a display verb that could always show the
> > zero-imaginary-part of complex numbers in storage, then we would have to
> > use that verb every time we displayed output that might be complex, if we
> > wanted to see any zero imaginary part.
>
> ----------------------------------------------------------------------
> 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