You will be assured of no imprecision if all terms are in the range that can
be faithfully represented by fp. Since these matrices are positive, and
therefore monotonically increasing, it suffices to check the the final result.
On Mon, 9 Jan 2023, Marshall Lochbaum wrote:
Yes, my point was that I don't think you can reliably determine in
advance whether a matrix product scan will invoke floating point
imprecision.
Marshall
On Mon, Jan 09, 2023 at 08:25:43PM -0500, Henry Rich wrote:
The implementation is floating point.
Henry Rich
On Mon, Jan 9, 2023, 8:24 PM Marshall Lochbaum <mwlochb...@gmail.com> wrote:
> The matrices in my example are integral.
>
> Marshall
>
> On Mon, Jan 09, 2023 at 05:20:49PM -0800, Elijah Stone wrote:
> > I've thought in the past that it would be nice to have a mode for
> > reproducible fp, but there is none yet (try +/ vs ([+])/). But it is
> moot
> > in this case, as the matrices in question were integral.
> >
> > (I don't think strict interpretation per se is necessary; just something
> > reliable and consistent. EG I imagine picking and committing to a way of
> > associating +/ which requires log space but admits efficient
> implementation
> > on any sort of parallel architecture.)
> >
> > On Mon, 9 Jan 2023, Marshall Lochbaum wrote:
> >
> > > I don't think you'd want to reorder matrix multiplications as that can
> > > change the results by an arbitrary amount. Here's an example where
> > > multiplication on one side cancels but not on the other side.
> > >
> > > (+/ .*&.>/ , +/ .*&.>~/@:|.) 1e6 1e7;(1e13+=i.2);1 _1
> > > ┌────────┬──────────┐
> > > │_9000000│_8.99482e6│
> > > └────────┴──────────┘
> > >
> > > Marshall
> > >
> > > On Mon, Jan 09, 2023 at 01:45:32PM -0500, Henry Rich wrote:
> > > > If f is known to be associative, f/\ proceeds from start to end in
> linear
> > > > time. Elijah has thoughts about how you could inform the
> interpreter that a
> > > > function is associative. Till that is implemented, you can use
> f/\.&.|.
> > > > which has linear time, or you can use Fold.
> > > >
> > > > Henry Rich
> > > >
> > > > On 1/9/2023 1:23 PM, Omar Antolín Camarena wrote:
> > > > > Am I right in thinking that the J interpreter does use a linear
> time algorithm for u/\ for some u including + and *? If so, maybe the case
> of +/ . * is worth adding.
> > > > >
> > > >
> > > >
> ----------------------------------------------------------------------
> > > > 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