Ok, https://en.wikipedia.org/wiki/Atan2 makes sense.
In this case, though, it probably makes sense to constrain the last
dimension so that it only contains two values.
Perhaps?
atan2=: 3 :'{:"1 *. j./"1 y assert. 2={:$y'
Not that code can ever be perfect, or anything...
Thanks,
--
Raul
On Wed, Jul 30, 2014 at 9:08 AM, Linda Alvord <[email protected]>
wrote:
> At2 is a function Cliff Reiter developed. The at is arctan. I'm not
> sure
> what the 2 means.
>
> Your version at3 simply incorporates the i: of this example. However
> y
> in his version allows different domains:
>
> at2=: 13 :'([:{:"1 *.) j./"1 y'
>
> at2 4
> 0
>
> at2 i.4
> _2.35619
>
> at2 i:4
> _1.5708
>
> Without realizing it, I was getting a result without \
>
> i.0
>
> i:0
> 0
>
> i."0 >:i.5
> 0 0 0 0 0
> 0 1 0 0 0
> 0 1 2 0 0
> 0 1 2 3 0
> 0 1 2 3 4
>
> +/"1 i."0 >:i.5
> 0 1 3 6 10
>
> i:"0 i.5
> 0 0 0 0 0 0 0 0 0
> _1 0 1 0 0 0 0 0 0
> _2 _1 0 1 2 0 0 0 0
> _3 _2 _1 0 1 2 3 0 0
> _4 _3 _2 _1 0 1 2 3 4
>
> +/"1 i:"0 i.5
> 0 0 0 0 0
>
> +/"1 +\ i.5
> 0 1 3 6 10
> So now you can probably see where I was going with this:
>
> i:"0 i.7
> 0 0 0 0 0 0 0 0 0 0 0 0 0
> _1 0 1 0 0 0 0 0 0 0 0 0 0
> _2 _1 0 1 2 0 0 0 0 0 0 0 0
> _3 _2 _1 0 1 2 3 0 0 0 0 0 0
> _4 _3 _2 _1 0 1 2 3 4 0 0 0 0
> _5 _4 _3 _2 _1 0 1 2 3 4 5 0 0
> _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6
>
> at2
> [: ([: {:"1 *.) j./"1
>
> ([: ([: {:"1 *.) j./"1)i:"0 i.7
> 0 3.14159 _1.5708 3.14159 _1.5708 3.14159 _1.5708
>
> An infinite alternating series!
>
> Linda
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Raul Miller
> Sent: Tuesday, July 29, 2014 10:33 PM
> To: Programming forum
> Subject: Re: [Jprogramming] Analyze an alternating series
>
> Taking a look at this, I'm not quite sure where you are going.
> However, a few observations:
>
> The first thing I notice when I try to read
> at2=: 13 :'([:{:"1 *.) j./"1 y'
> is that those parenthesis are not really necessary. We could instead go:
> at2=: 13 :'{:"1 *. j./"1 y'
> and let 13 : put in the parenthesis and [: to make it all work.
>
> Next, I'm noticing that you are using i: n each time you use at2, so
> maybe instead:
> at3=: 13 :'{:"1 *. j./"1 i: y'
>
> After that, I start thinking about what this is really doing. You've
> got j./"1 on a list which is typically longer than length 2. And, at
> the very bottom you had:
> at2 i:"0 i.7
>
> I think my change is consistent, though, because you'll get padding on
> the right which are zeros, and n j. 0 is n, so skipping the padding
> step doesn't change anything.
>
> So let's take a look at j./ on a list:
> j./\ i: 3
> _3 _3j_2 _2j_2 _2j_2 _1j_2 _1 _4
> j./\ i: 4
> _4 _4j_3 _2j_3 _2j_2 _2j_2 _2j_1 _4j_1 _4j_4 0j_4
> j./\ i: 5
> _5 _5j_4 _2j_4 _2j_2 _3j_2 _3j_2 _4j_2 _4j_4 _1j_4 _1 _6
>
> Or, skipping the scans:
> j./i:3
> _4
> j./i:4
> 0j_4
> j./i:5
> _6
>
> It looks like odd numbers give a real valued result and even numbers
> give a complex valued result.
>
> And then you are using *. to get the angle of the complex number, so
> that's where your final result comes from.
>
> I imagine there's a variety of other ways of getting that final result?
>
> Thanks,
>
> --
> Raul
>
>
>
>
>
> On Tue, Jul 29, 2014 at 4:33 AM, Linda Alvord <[email protected]>
> wrote:
> > As I am just heading for the airport after a delightful conference I
> seem
> > to have captured a way to analyze alternating series. What do you think
> > about this?
> >
> > We stayed on the 7th floor of our hotel and had a great time.
> >
> >
> >
> > f=:+/"1
> >
> >
> >
> > f i."0 i.7
> >
> > 0 0 1 3 6 10 15
> >
> >
> >
> > f i:"0 i.7
> >
> > 0 0 0 0 0 0 0
> >
> >
> >
> > at2=: 13 :'([:{:"1 *.) j./"1 y'
> >
> >
> >
> > ]at2 i:2
> >
> > _1.5708
> >
> >
> >
> > at2 i:5
> >
> > 3.14159
> >
> >
> >
> > at2 i:600
> >
> > _1.5708
> >
> >
> >
> > at2 i:601
> >
> > 3.14159
> >
> >
> >
> > at2 i:"0 i.7
> >
> > 0 3.14159 _1.5708 3.14159 _1.5708 3.14159 _1.5708
> >
> >
> >
> > Linda
> >
> >
> >
> >
> >
> > ----------------------------------------------------------------------
> > 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