​There are many ways to handle the fractional part of a number, depending
on the problem at hand. The real difficulty seems to be handling negative
numbers. I like this, which rounds down negative numbers. But others might
want a different way.

   ]'i f'=:|:0 1#:1.2 3.7 _2.1
  1   3  _3
0.2 0.7 0.9
   i
1 3 _3

   f
0.2 0.7 0.9
   i+f
1.2 3.7 _2.1​

On Tue, Aug 8, 2017 at 3:56 PM, Skip Cave <s...@caveconsulting.com> wrote:

> The purpose of the "negative fractional part" is to satisfy the identity
> condition when the two parts are added back together:
>
>    ]v=:2%(3r19-%1 2 3 245 246 247 248)  NB. Create some long fractional
> parts.
>
> _2.375 _5.84615 _11.4 13.0028 13.0014 13 12.9986
>
>
> fp=. * * 1||     NB. The fractional part verb
>
> ip=: * * <.@|   NB. The integer part verb
>
>
> ]fpv =: fp v     NB. Save the fractional part
>
> _0.375 _0.846154 _0.4 0.0027933 0.00139082 0 0.998621
>
>
> ]ipv =: ip v     NB. Save the integer part
>
> _2 _5 _11 13 13 13 12
>
>
>
> ]sm =: ipv + fpv   NB. Add the two parts back together
>
> _2.375 _5.84615 _11.4 13.0028 13.0014 13 12.9986
>
>
>  NB. The result of adding the two parts should be identical to the original
> vector.
>
>
> sm = v
>
> 1 1 1 1 1 1 1
>
> Skip Cave
> Cave Consulting LLC
>
> On Tue, Aug 8, 2017 at 2:14 PM, 'Bo Jacoby' via Programming <
> programm...@jsoftware.com> wrote:
>
> > The integer part  a  and the fractional part  b  of a number  x  is such
> > that x=a+b and  a  is an integer and   0<:b  and  b<1 . I do know of no
> use
> > of a "negative fractional part".
> >
> >     Den 20:39 tirsdag den 8. august 2017 skrev Raul Miller <
> > rauldmil...@gmail.com>:
> >
> >
> >  I think we've mostly been using the wiki for live documents. (I'm not
> > sure what all would be involved in changing the phrase book.)
> >
> > Thanks,
> >
> > --
> > Raul
> >
> >
> > On Tue, Aug 8, 2017 at 2:35 PM, Skip Cave <s...@caveconsulting.com>
> wrote:
> > > It looks like we have a reliable solution to find a fractional part of
> a
> > > floating point number, while maintaining the sign:
> > >
> > >    v
> > >
> > > _2.375 _5.84615 _11.4 13.0028 13.0014 13 12.9986
> > >
> > >    fp=. * * 1||    NB. Thanks to Martin
> > >
> > >    fp v
> > >
> > > _0.375 _0.846154 _0.4 0.0027933 0.00139082 0 0.998621
> > >
> > >
> > > Credit should also go to the people who suggested the building blocks,
> > e.g.
> > >
> > > (1|y) Raul  --  (1||y) Pascal  --  (*y) Raul
> > >
> > > It is also nice to have the companion verb - integer part:
> > >
> > >    ip=: * * <.@|      NB. Thanks to Louis
> > >
> > >    ip v
> > >
> > > _2 _5 _11 13 13 13 12
> > >
> > >
> > > I have needed these functions more than once in my enginering work. I
> > > believe that these two verbs need to be inserted 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 the document? What section do they fit the best
> in?
> > > Can I edit the Phrases doc?
> > >
> > > 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/forums.htm

Reply via email to