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