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

Reply via email to