signum is zero tolerant but that may be what you intended.
On Tue, Aug 8, 2017 at 1:15 PM, Martin Kreuzer <i...@airkreuzer.com> wrote: > Raul, picking up your suggestion, > > take the fractional part if positive number, > mark by _1 if negative (sort of a mask?) > > v=. 2.25 _8.11 16 _3 > > using Agenda > > (1&|)`(*) @. (0&>"0) v > 0.25 _1 0 _1 > fp3=. 1&|`*@.(0&>"0) > fp3 v > 0.25 _1 0 _1 > > -M > > > At 2017-08-07 22:26, Raul Miller wrote: > >> When I suggested an offset of _1 I did not understand the full >> specification, and was fishing for clues. >> >> Thanks, >> >> -- >> Raul >> >> >> On Mon, Aug 7, 2017 at 5:30 PM, Martin Kreuzer <i...@airkreuzer.com> >> wrote: >> > I'm not sure what Raul had in mind when he suggested an offset of _1 to >> > mark >> > the position of negatives (maybe that would help further calculations or >> > decisions on the data set, I do not have the experience to judge that); >> > at >> > this stage it only works with integers but not with floats ... >> > -M >> >> >> > At 2017-08-07 21:08, you wrote: >> >> >> Ooops! it looks like fp2 isn't so good after all. >> >> >> >> Skip >> >> >> >> Skip Cave >> >> Cave Consulting LLC >> >> >> >> On Mon, Aug 7, 2017 at 4:02 PM, Martin Kreuzer <i...@airkreuzer.com> >> >> wrote: >> >> >> >> > Was it meant like that..? >> >> >> >> > fp2 0.3 _0.3 3 _3 >> >> > 0.3 _0.3 0 _1 >> >> >> >> > -M >> >> >> >> >> >> > At 2017-08-07 20:38, you wrote: >> >> >> >> > It looks like we have two good solutions to find a fractional part: >> >> >> >> >> >> v >> >> >> >> >> >> _2.375 _5.84615 _11.4 13.0028 13.0014 13 12.9986 >> >> >> fp1=. * * 1|| NB. Martin >> >> >> fp2 =. (1&| - 0&>) NB. Bo & Raul collaboration. >> >> >> >> >> >> fp1 v >> >> >> >> >> >> _0.375 _0.846154 _0.4 0.0027933 0.00139082 0 0.998621 >> >> >> >> >> >> fp2 v >> >> >> >> >> >> _0.375 _0.846154 _0.4 0.0027933 0.00139082 0 0.998621 >> >> >> >> >> >> >> >> >> Also the converse - integer part: >> >> >> >> >> >> ip=: * * <.@| >> >> >> >> >> >> ip v NB. Louis >> >> >> >> >> >> _2 _5 _11 13 13 13 12 >> >> >> >> >> >> >> >> >> These two verbs need to be somewhere in the "Numbers" section of the >> >> >> J >> >> >> Phrases doc. Maybe under "8A-Numbers & Counting", or >> >> >> 8C-Representations", >> >> >> or "8D-Arithmetic". How do we get them in there? Can I edit the >> >> >> Phrases >> >> >> doc? >> >> >> >> >> >> >> >> >> Skip >> >> >> >> >> >> >> >> >> >> >> >> Skip Cave >> >> >> Cave Consulting LLC >> >> >> >> >> >> On Sun, Aug 6, 2017 at 11:22 AM, Louis de Forcrand >> >> >> <ol...@bluewin.ch> >> >> >> wrote: >> >> >> >> >> >> > ip would be best implemented as >> >> >> >> >> >> > ip=: * * <.@| >> >> >> >> >> >> > as it would return an integer result. >> >> >> >> >> >> > Louis >> >> >> >> >> >> > > On 06 Aug 2017, at 12:17, Skip Cave <s...@caveconsulting.com> >> >> >> > > wrote: >> >> >> > > >> >> >> > > All, Thanks for the help. >> >> >> > > >> >> >> > > Here's some real numbers from a problem I'm working on: >> >> >> > > Calculate some values from this equation: >> >> >> > > v=:2%(3r19-%1 2 3 245 246 247 248) >> >> >> > > v >> >> >> > > _2.375 _5.84615 _11.4 13.0028 13.0014 13 12.9986 >> >> >> > > Raul's first suggestion: >> >> >> > > 1|v >> >> >> > > 0.625 0.153846 0.6 0.0027933 0.00139082 0 0.998621 >> >> >> > > More precision, but signs are wrong on the negative numbers. >> >> >> > > >> >> >> > > Nolaig's suggestion: >> >> >> > > (- <.) v >> >> >> > > 0.625 0.153846 0.6 0.0027933 0.00139082 1.77636e_15 0.998621 >> >> >> > > Negative signs are still wrong, and the 6th entry should be >> >> >> > > zero. >> >> >> Looks >> >> >> > > like a compare tolerance problem. >> >> >> > > >> >> >> > > Pascal's solution: >> >> >> > > >> >> >> > > 1 (| |)v >> >> >> > > >> >> >> > > 0.375 0.846154 0.4 0.0027933 0.00139082 0 0.998621 >> >> >> > > Still has the negatives wrong. >> >> >> > > >> >> >> > > Martin's solution: >> >> >> > > fp=.**1|| >> >> >> > > >> >> >> > > fp v >> >> >> > > >> >> >> > > _0.375 _0.846154 _0.4 0.0027933 0.00139082 0 0.998621 >> >> >> > > Negatives are right, zeroes are right. This fractional part verb >> >> >> needs to >> >> >> > > be in the documentation as part of the numbers chapter. >> >> >> > > >> >> >> > > Also the integer part verb: ip=.]-**1|| should be included in >> >> >> > > the >> >> >> > > numbers section as well. >> >> >> > > ip v >> >> >> > > >> >> >> > > _2 _5 _11 13 13 13 12 >> >> >> > > >> >> >> > > Skip >> >> >> > > >> >> >> > > Skip Cave >> >> >> > > Cave Consulting LLC >> >> >> > > >> >> >> > > On Sun, Aug 6, 2017 at 6:42 AM, Raul Miller >> >> >> > > <rauldmil...@gmail.com> >> >> >> > wrote: >> >> >> > > >> >> >> > >> 1&| does work, actually. >> >> >> > >> >> >> >> > >> And, if you want an offset of -1 on that result when the >> >> >> > >> original >> >> >> > >> value was negative, you can use (1&| - 0&>) >> >> >> > >> >> >> >> > >> Thanks, >> >> >> > >> >> >> >> > >> -- >> >> >> > >> Raul >> >> >> > >> >> >> >> > >> On Sun, Aug 6, 2017 at 3:19 AM, Martin Kreuzer >> >> >> > >> <i...@airkreuzer.com> >> >> >> > >> wrote: >> >> >> > >>> In easy steps (and for further reference) ... >> >> >> > >>> >> >> >> > >>> From these test data (two floats, two integers, different >> >> >> > >>> signs), >> >> >> > >>> to >> >> >> > get >> >> >> > >> the >> >> >> > >>> fractional parts >> >> >> > >>> >> >> >> > >>> v=. 2.25 _8.11 16 _3 >> >> >> > >>> >> >> >> > >>> simply taking the Residue (when dividing by 1) doesn't work >> >> >> > >>> (error >> >> >> at >> >> >> > >>> negative float position) >> >> >> > >>> >> >> >> > >>> 1|v >> >> >> > >>> 0.25 0.89 0 0 >> >> >> > >>> >> >> >> > >>> So first get Magnitude >> >> >> > >>> >> >> >> > >>> | v >> >> >> > >>> 2.25 8.11 16 3 >> >> >> > >>> >> >> >> > >>> then take Residue >> >> >> > >>> >> >> >> > >>> 1 | (| v) >> >> >> > >>> 0.25 0.11 0 0 >> >> >> > >>> >> >> >> > >>> then get the sign right (see Raul's remark below) >> >> >> > >>> >> >> >> > >>> (*v) * (1 | | v) >> >> >> > >>> 0.25 _0.11 0 0 >> >> >> > >>> >> >> >> > >>> and put it as verb (fp), written as a fork >> >> >> > >>> >> >> >> > >>> fp=. * * 1|| >> >> >> > >>> fp v >> >> >> > >>> 0.25 _0.11 0 0 >> >> >> > >>> >> >> >> > >>> -M >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> At 2017-08-06 02:14, you wrote: >> >> >> > >>> >> >> >> > >>>> Eh... but that's wrong. You can't add any integer to >> >> >> > >>>> 0.542857 >> >> >> > >>>> to >> >> >> get >> >> >> > >>>> _0.542857. >> >> >> > >>>> >> >> >> > >>>> If you want signed fractions, you'd need something like (*@] >> >> >> > >>>> * >> >> >> > >>>> (| >> >> >> |)) >> >> >> > >>>> >> >> >> > >>>> Thanks, >> >> >> > >>>> >> >> >> > >>>> -- >> >> >> > >>>> Raul >> >> >> > >>>> >> >> >> > >>>> >> >> >> > >>>> On Sat, Aug 5, 2017 at 10:01 PM, 'Pascal Jasmin' via >> >> >> > >>>> Programming >> >> >> > >>>> <programm...@jsoftware.com> wrote: >> >> >> > >>>>> combining other answers we get the cute: >> >> >> > >>>> >> >> >> > >>>>> 1 (| |) _0.542857 _1.1875 1.96552 2.92308 4.13043 5.7 >> >> >> > >>>>> 7.82353 >> >> >> > 10.8571 >> >> >> > >>>>> 15.5455 23.75 >> >> >> > >>>> >> >> >> > >>>> >> >> >> > >>>> >> >> >> > >>>> >> >> >> > >>>>> ________________________________ >> >> >> > >>>>> From: Bill <bbill....@gmail.com> >> >> >> > >>>>> To: "programm...@jsoftware.com" <programm...@jsoftware.com> >> >> >> > >>>>> Sent: Saturday, August 5, 2017 8:30 PM >> >> >> > >>>>> Subject: Re: [Jprogramming] Fractional parts >> >> >> > >>>> >> >> >> > >>>> >> >> >> > >>>> >> >> >> > >>>>> this also depends on what do you expect for negative >> >> >> > >>>>> numbers. >> >> >> > >>>> >> >> >> > >>>>> Sent from my iPhone >> >> >> > >>>> >> >> >> > >>>>> On 6 Aug, 2017, at 7:35 AM, Skip Cave >> >> >> > >>>>> <s...@caveconsulting.com> >> >> >> > >> wrote: >> >> >> > >>>> >> >> >> > >>>>>> Oops! i meant: >> >> >> > >>>>>> >> >> >> > >>>>>> How does one find the fractional parts of a vector of >> >> >> > >>>>>> floating >> >> >> point >> >> >> > >>>>>> numbers? >> >> >> > >>>>>> >> >> >> > >>>>>> 0.542857 1.1875 1.96552 2.92308 4.13043 5.7 7.82353 10.8571 >> >> >> 15.5455 >> >> >> > >>>>>> 23.75 >> >> >> > >>>>>> 41.8 114 247 >> >> >> > >>>>>> >> >> >> > >>>>>> i want: >> >> >> > >>>>>> 0.542857 0.1875 0.96552 0.92308 0.13043 0.7 0.82353 0.8571 >> >> >> > >>>>>> 5.5455 >> >> >> > >> 0.75 >> >> >> > >>>>>> 0.8 >> >> >> > >>>>>> 0 0 >> >> >> > >>>>>> >> >> >> > >>>>>> (Last two integers have zero fractional part.) >> >> >> > >>>>>> >> >> >> > >>>>>> >> >> >> > >>>>>> Skip Cave >> >> >> > >>>>>> Cave Consulting LLC >> >> >> > >>>>>> >> >> >> > >>>>>> On Sat, Aug 5, 2017 at 6:30 PM, Skip Cave < >> >> >> s...@caveconsulting.com> >> >> >> > >>>>>> wrote: >> >> >> > >>>>>> >> >> >> > >>>>>>> How does one find the fractional parts of a vector of >> >> >> > >>>>>>> floating >> >> >> > point >> >> >> > >>>>>>> numbers? >> >> >> > >>>>>>> >> >> >> > >>>>>>> 0.542857 1.1875 1.96552 2.92308 4.13043 5.7 7.82353 >> >> >> > >>>>>>> 10.8571 >> >> >> 15.5455 >> >> >> > >>>>>>> 23.75 >> >> >> > >>>>>>> 41.8 114 247 >> >> >> > >>>>>>> >> >> >> > >>>>>>> i want: >> >> >> > >>>>>>> 0.542857 0.1875 0.96552 0.92308 0.13043 0.7 0.82353 0.8571 >> >> >> 5.5455 >> >> >> > >> 0.75 >> >> >> > >>>>>>> 0.8 >> >> >> > >>>>>>> 114 247 >> >> >> > >>>>>>> >> >> >> > >>>>>>> Skip >> >> >> > >>>>>>> >> >> >> > >>>>>>> Skip Cave >> >> >> > >>>>>>> Cave Consulting LLC >> >> >> > >>>>>> >> >> >> > >>>>>> ------------------------------------------------------------ >> >> >> > >> ---------- >> >> >> > >>>>>> 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/forum >> >> >> s.htm >> >> >> > >> ------------------------------------------------------------ >> >> >> ---------- >> >> >> > >> For information about J forums see >> >> >> > >> http://www.jsoftware.com/forum >> >> >> s.htm >> >> >> > >> >> >> >> > > ------------------------------------------------------------ >> >> >> ---------- >> >> >> > > 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm