Actually, J usually stores the number in whatever format it happens to be storing it as.
However, when J displays the number, it routinely removes irrelevant information. Something similar happens when you enter numbers. Thus: 2j0 2 datatype 2j0 integer 1j1 + 1j_1 2 datatype 1j1 + 1j_1 complex Thanks, -- Raul On Thu, Aug 18, 2016 at 1:58 PM, Skip Cave <[email protected]> wrote: > Roger, > > Ah! the light dawns! J doesn't keep the type of the data as entered by the > user. If the imaginary part is zero, J stores the number as real. If the > number is one or zero (with or without an imaginary zero part), it stores > the number as boolean. If the number is not floating and not fractional, it > stores the number as integer (again ignoring any zero imaginary part). > > R1 =. _0.5 > > I1 =. _0.5j0 > > R1 = I1 > > 1 > > > R2 =. 1 > > I2 =. 1j0 > > R2 = I2 > > 1 > > > datatype 0j0 > > boolean > > datatype _0.5j0 > > floating > > datatype 1j0 > > boolean > > datatype 1j1 > > complex > > datatype 2j0 > > integer > > Skip Cave > Cave Consulting LLC > > On Thu, Aug 18, 2016 at 3:41 AM, roger stokes <[email protected]> > wrote: > >> Skip, >> >> Thanks for your message and thanks for all the trouble you have gone to. >> Let me try to explain the results you are seeing. >> >> First, the important thing to note is that J itself displays a complex >> number with imaginary part zero as looking like a real number. To >> check this, try entering 0.5j0 _0.5j0 directly into any J session: >> >> >> 0.5j0 _0.5j0 >> 0.5 _0.5 >> >> Second, the result you are seeing is indeed complex: >> >> Z =: JNFS SFJN _0.25 >> >> datatype Z >> complex >> >> but it looks like a real number (and hence your objection) >> >> Z >> _0.5 >> >> but it does have the value that you say it should have >> >> Z = _0.5j0 >> 1 >> >> Hope this is useful >> >> Regards >> >> >> On Wed, Aug 17, 2016 at 8:35 PM, Skip Cave <[email protected]> >> wrote: >> >> > All, >> > >> > I agree that the unum for _0.25 should be "_0.5j0" >> > My previous statement was wrong in its declaration of what *should be*, >> but >> > it wasn't wrong about what *is wrong in the lab*. >> > >> > I said: "Shouldn't converting _0.25 to a SORN, then back to a >> > J number produce _0j0.5, NOT _0.5? " >> > >> > I should have said: >> > "Shouldn't converting _0.25 to a SORN, then back to a >> > J number produce >> > >> > >> > >> > _0.5j0, NOT _0.5? " >> > >> > The key here is the words "NOT _0.5". >> > >> > >> > Here are the lab results copied directly from the session: >> > >> > >> > >> > JNFS SFJN 0.25 >> > >> > 0j0.5 >> > >> > >> > >> > JNFS SFJN _0.25 >> > _0.5 >> > >> > >> > So as I tried to state in my previous post: The lab is producing wrong >> > results for conversions of _0.25 to SORNS and back to J numbers. The lab >> > should produce " >> > >> > _0.5j0 >> > " for the result of >> > >> > JNFS SFJN _0.25 >> > >> > For that matter, the lab produces wrong results for the whole interval >> from >> > 0 < x < 0.5 >> > >> > >> > >> > JNFS SFJN _0.25 >> > >> > _0.5 >> > >> > >> > JNFS SFJN _0.35 >> > _0.5 >> > >> > >> > JNFS SFJN _0.1 >> > >> > _0.5 >> > JNFS SFJN _0.499 >> > >> > _0.5 >> > >> > >> > JNFS SFJN _0.5 >> > >> > _1r2 >> > >> > >> > I believe that all these results should be " >> > >> > _0.5j0 >> > " in the lab. >> > >> > Then the lab gets it right again once we cross the _1r2 border (heading >> > negatively): >> > >> > >> > >> > JNFS SFJN _0.6 >> > >> > _1j_0.5 >> > >> > Skip >> > >> > >> > >> > Skip Cave >> > Cave Consulting LLC >> > >> > On Wed, Aug 17, 2016 at 10:47 AM, roger stokes <[email protected] >> > >> > wrote: >> > >> > > Typo in my last: "gives 0.5j0" should be "Gives "_0.5j0" >> > > >> > > Sorry. >> > > >> > > On Wed, Aug 17, 2016 at 4:43 PM, roger stokes < >> [email protected]> >> > > wrote: >> > > >> > > > Skip, >> > > > >> > > > you wrote "Shouldn't converting _0.25 to a SORN, then back to a >> > > > J number produce _0j0.5, NOT _0.5? " >> > > > I believe the result given is correct, because _0.25 is in the >> > > > interval (_0.5 0) in 4-bit precision. >> > > > >> > > > A =: SFJN _0.25 >> > > > >> > > > >> > > > (> A) # UNUMS >> > > > +------+ >> > > > ¦_1r2 0¦ >> > > > +------+ >> > > > >> > > > Rendering this as a complex number, with real for lower bound _1r2 >> > > > and imaginary for upper bound 0 gives 0.5j0 which is presented by J >> > > > as a real number because imag = 0 >> > > > >> > > > ] B =: JNFS A >> > > > _0.5 >> > > > datatype B >> > > > complex >> > > > B = _0.5j0 >> > > > 1 >> > > > >> > > > >> > > > I rest my case. >> > > > >> > > > These conversions are not yet finished nor documented, in fact the >> > whole >> > > > thing is pretty rough. On that subject, let me mention that until I >> > get >> > > it >> > > > cleaned up, users should avoid one-character lower case variables, >> > > because >> > > > of my sloppy style of doing global assigns to what should be local. >> > > > >> > > > I thought it would be best to use rationals for the values, rather >> than >> > > > reals, >> > > > so that the computations for the lookup tables would be exact. >> > > > >> > > > Regards >> > > > >> > > > On Wed, Aug 17, 2016 at 3:02 PM, Skip Cave <[email protected]> >> > > > wrote: >> > > > >> > > >> Playing with 4-bit unums (compact SORNS), I thought I would see how >> > the >> > > >> J-to-SORN & SORN-to-J conversions worked: >> > > >> >> > > >> JNFS SFJN _3 >> > > >> >> > > >> __j_2 >> > > >> >> > > >> JNFS SFJN _2.5 >> > > >> >> > > >> __j_2 >> > > >> >> > > >> JNFS SFJN _2 >> > > >> >> > > >> _2 >> > > >> >> > > >> JNFS SFJN _1.5 >> > > >> >> > > >> _2j_1 >> > > >> >> > > >> JNFS SFJN _1 >> > > >> >> > > >> _1 >> > > >> >> > > >> JNFS SFJN _0.5 >> > > >> >> > > >> _1r2 >> > > >> >> > > >> JNFS SFJN _0.25 >> > > >> >> > > >> _0.5 NB. ?? >> > > >> >> > > >> JNFS SFJN _0 >> > > >> >> > > >> 0 >> > > >> >> > > >> JNFS SFJN 0 >> > > >> >> > > >> 0 >> > > >> >> > > >> JNFS SFJN 0.25 >> > > >> >> > > >> 0j0.5 >> > > >> >> > > >> JNFS SFJN 0.5 >> > > >> >> > > >> 1r2 >> > > >> >> > > >> JNFS SFJN 0.75 >> > > >> >> > > >> 0.5j1 >> > > >> >> > > >> JNFS SFJN 1 >> > > >> >> > > >> 1 >> > > >> >> > > >> JNFS SFJN 1.5 >> > > >> >> > > >> 1j2 >> > > >> >> > > >> JNFS SFJN 1.75 >> > > >> >> > > >> 1j2 >> > > >> >> > > >> JNFS SFJN 2 >> > > >> >> > > >> 2 >> > > >> >> > > >> JNFS SFJN 2.5 >> > > >> >> > > >> 2j_ >> > > >> >> > > >> JNFS SFJN 3 >> > > >> >> > > >> 2j_ >> > > >> >> > > >> JNFS SFJN _ >> > > >> >> > > >> 2j_ >> > > >> >> > > >> JNFS SFJN __ >> > > >> >> > > >> __ >> > > >> >> > > >> >> > > >> This would have been easier if JNFS and SFJN could handle vectors. >> In >> > > any >> > > >> case, everything looked good, once I understood how Roger was >> > > representing >> > > >> intervals in J as complex numbers, EXCEPT converting _0.25. >> Shouldn't >> > > >> converting _0.25 to a SORN, then back to a J number produce _0j0.5, >> > NOT >> > > >> _0.5? >> > > >> >> > > >> >> > > >> Skip >> > > >> >> > > >> >> > > >> Skip Cave >> > > >> Cave Consulting LLC >> > > >> >> > > >> On Wed, Aug 17, 2016 at 7:21 AM, Skip Cave <[email protected] >> > >> > > >> wrote: >> > > >> >> > > >> > Is there a way for the unum lab to discover where it was started >> > from, >> > > >> and >> > > >> > then set the working directory to that location, rather than >> having >> > > the >> > > >> > user have to set the directory? >> > > >> > >> > > >> > Skip >> > > >> > >> > > >> > Skip Cave >> > > >> > Cave Consulting LLC >> > > >> > >> > > >> > On Wed, Aug 17, 2016 at 6:47 AM, roger stokes < >> > > [email protected] >> > > >> > >> > > >> > wrote: >> > > >> > >> > > >> >> Dear All, >> > > >> >> >> > > >> >> Please accept my apologies for wasting your time, and my thanks >> > > >> >> for your patience, persistence and help. >> > > >> >> >> > > >> >> Skip, Raul, Vijay, you are quite right about 1 !: 44 . >> > > >> >> Instead of cd .... I should have said >> > > >> >> >> > > >> >> 1 !: 44 'yourdirectory' NB. full pathname is >> recommended >> > > >> >> >> > > >> >> >> > > >> >> Vijay, I made a correction following your mention of >> > > >> general/misc/fndef . >> > > >> >> This file should not be needed. >> > > >> >> >> > > >> >> >> > > >> >> Bob, thanks for the suggestion - it's a good way to get the lab >> > > >> started >> > > >> >> but there is still the need to find the other scripts. I will >> > ponder >> > > >> this >> > > >> >> and see if there is a better way than as it is. >> > > >> >> >> > > >> >> Bill, thanks for the information about jconsole - I didn't know >> > this >> > > >> >> and am very glad you mentioned it. >> > > >> >> >> > > >> >> I have now uploaded a corrected version to >> > > >> www.learningj.com/unumslab.zip >> > > >> >> . >> > > >> >> However, I hope, I believe, that the VERSION YOU ALREADY HAVE >> > should >> > > >> run >> > > >> >> OK by doing this: >> > > >> >> >> > > >> >> 1 !: 44 'yourdirectory' >> > > >> >> >> > > >> >> first =: {. NB. workaround for Vijay's issues >> > > >> >> snd =: 1 & { >> > > >> >> >> > > >> >> load 'labs/labs' >> > > >> >> >> > > >> >> lab_jlab_ 'unums.ijt' >> > > >> >> >> > > >> >> >> > > >> >> Thanks again, everyone >> > > >> >> >> > > >> >> On Wed, Aug 17, 2016 at 4:12 AM, bill lam <[email protected]> >> > > wrote: >> > > >> >> >> > > >> >> > In the readme, it said >> > > >> >> > ... jconsole doesn't support labs >> > > >> >> > >> > > >> >> > This is incorrect. One can run labs on jconsole >> > > >> >> > and type labrun_jlab_ '' (and up arrow to recall) >> > > >> >> > to advance. >> > > >> >> > >> > > >> >> > Вт, 16 авг 2016, roger stokes написал(а): >> > > >> >> > > Dear All, >> > > >> >> > > >> > > >> >> > > I've heard it said that you don't understand a subject >> > > >> >> > > unless you can explain it to a computer. With that in mind >> > > >> >> > > I've attempted a software implementation of Gustafson's Unums >> > 2.0 >> > > >> >> > > >> > > >> >> > > ( http://www.johngustafson.net/presentations/Unums2.0.pdf >> ). >> > > >> >> > > >> > > >> >> > > If anyone is interested, there is a demo available in the >> > > >> >> > > form of a J lab. To run the lab >> > > >> >> > > >> > > >> >> > > Download www.learningj.com/unumslab.zip >> > > >> >> > > >> > > >> >> > > Unzip into any convenient directory >> > > >> >> > > >> > > >> >> > > Follow directions in the readme file >> > > >> >> > > >> > > >> >> > > Comments and criticisms appreciated. >> > > >> >> > > >> > > >> >> > > Regards >> > > >> >> > > ------------------------------------------------------------ >> > > >> >> ---------- >> > > >> >> > > For information about J forums see >> > > http://www.jsoftware.com/forum >> > > >> >> s.htm >> > > >> >> > >> > > >> >> > -- >> > > >> >> > regards, >> > > >> >> > ==================================================== >> > > >> >> > GPG key 1024D/4434BAB3 2008-08-24 >> > > >> >> > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 >> > > >> >> > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 >> > > >> >> > ------------------------------------------------------------ >> > > >> ---------- >> > > >> >> > For information about J forums see >> > http://www.jsoftware.com/forum >> > > >> s.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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
