I think that is probably right Ian,

5j0 produces an integer result of 5 whereas 5j000.1 is a complex result. 

You can force the whole array to revert to complex by appending a complex 
number so:

_2j.1,(_2+0.001*i.500)j.0

would produce a vector of complex. 

As I just discovered as i played with it, you can then drop the first element 
and the list remains complex in JHS [1]

}. _2j.1,(_2+0.001*i.500)j.0

Cheers, bob

[1] Shameless self promotion that I used my shapes and types tool in JHS to 
play around with this 
http://bobtherriault.wordpress.com/2014/02/14/an-update-on-display-shapes-and-types-on-jhs/


On May 11, 2014, at 7:44 AM, Ian Clark <[email protected]> wrote:

> Is this a reappearance of the issue first discussed here? ...
> http://www.jsoftware.com/pipermail/programming/2011-July/023384.html
> 
> Except maybe in reverse: whereas the problem back then was (logically) real
> data accidentally becoming complex, perhaps your horizontal arrow is
> (logically) complex data that has accidentally become real?
> 
> Just guessing... haven't had time to try your example out and verify my
> conjecture. But I would guess Bill has put his finger on the spot that
> hurts.
> 
> 
> On Sun, May 11, 2014 at 5:56 AM, Raul Miller <[email protected]> wrote:
> 
>> The tropic of cancer is the farthest north you can be and still have
>> the sun be directly overhead at some time during the year (in the
>> middle of northern hemisphere summer). This is approximately 22.5
>> degrees latitude. See also:
>> 
>> http://www.geog.ucsb.edu/~joel/g110_w08/lecture_notes/sun_angle/sun_angle.html
>> for a lot more detail on this and related issues.
>> 
>> This is relevant, for example, when building a home. Depending on the
>> latitude and the time of the year, the noon sun will range from
>> 90-latitude+22.5 to 90-latitude-22.5 degree. This means that if you
>> build your house right (with south facing insulated glass and the
>> right kind of south facing roof overhang) you can have solar heat in
>> the winter while mostly getting shade in the summer.
>> 
>> (Deciduous trees can achieve similar effects. And, of course, not
>> everyone is in a position to have trees, nor is everyone in a position
>> to build a house. And there are other issues to consider. But there's
>> only so much material I'm going to cover in one email message.)
>> 
>> So let's draw a picture of this.
>> 
>> require 'plot'
>> plot j./1 2 o./o.0.001*i.2002
>> 
>> Note that I'm using j./ to get a parametric curve. and the numbers
>> give me a range from 0 to approximately 2*pi. Also, of course 1 o. is
>> sine and 2 o. is cosine (since sine is an odd function and cosine is
>> an even function. See:
>> https://en.wikipedia.org/wiki/Even_and_odd_functions)
>> 
>> That plot supposed to be a circle, representing the earth. You'll have
>> to manually adjust the size of the window so that my circle is
>> circular.
>> 
>> Now, let's draw in the angle of the equator.
>> 
>> require'plot'
>> pd 'reset'
>> pd j./1 2 o./o.0.001*i.2002
>> pd (0.001*i:2002)*j./2 1 o. 22.5%180p_1
>> pd 'show'
>> 
>> You'll have to make my circle be circular again.
>> 
>> Also, %180p_1 converts from degrees (the typical treatment for
>> latitude) to radians (the math used by plot).
>> 
>> You can imagine the sun being off to one side, and light coming in
>> horizontally. In fact, it might be nice to draw some arrows.
>> 
>> So, how do I draw horizontal lines?
>> 
>> A horizontal line has y=0 and x ranging over the range of values we
>> want to display. This is a bit odd to think about because plot is
>> sensitive to data type in a non-mathematical fashion. But before I can
>> show what that means, I've a bug to report:
>> 
>> require'plot'
>> pd 'reset'
>> pd j./1 2 o./o.0.001*i.2002
>> pd (0.001*i:2002)*j./2 1 o. 22.5%180p_1
>> pd (_1.6+0.001*i.100)j.0.1-0.001*i.100
>> pd (_1.6+0.001*i.100)j._0.1+0.001*i.100
>> pd (_2+0.001*i.500)j.0
>> pd 'show'
>> 
>> That last line gives me a domain error in J6, and silently does
>> nothing in J8. It's supposed to be a horizontal line - I'm trying to
>> draw an arrow. But for whatever reason that fails. (This is where
>> someone is supposed to loudly assert how wonderful data types are
>> because of how they make things fail. And, in fact, those failure
>> modes can be put to good use. But they are not exactly a universal
>> good.)
>> 
>> The workaround is to make the line be not quite horizontal (but not so
>> much that it's visible. For example:
>> 
>> require'plot'
>> pd 'reset'
>> pd j./1 2 o./o.0.001*i.2002
>> pd (0.001*i:2002)*j./2 1 o. 22.5%180p_1
>> pd (_1.6+0.001*i.100)j.0.1-0.001*i.100
>> pd (_1.6+0.001*i.100)j._0.1+0.001*i.100
>> pd (_2+0.001*i.500)j.1e_12*i.500
>> pd 'show'
>> 
>> Actually, it might be nice to have several arrows:
>> 
>> require'plot'
>> pd 'reset'
>> pd j./1 2 o./o.0.001*i.2002
>> pd (0.001*i:2002)*j./2 1 o. 22.5%180p_1
>> pd (_1.6+0.001*i.100)j.0.6-0.001*i.100
>> pd (_1.6+0.001*i.100)j.0.4+0.001*i.100
>> pd (_2+0.001*i.500)j.0.5+1e_12*i.500
>> pd (_1.6+0.001*i.100)j.0.1-0.001*i.100
>> pd (_1.6+0.001*i.100)j._0.1+0.001*i.100
>> pd (_2+0.001*i.500)j.1e_12*i.500
>> pd (_1.6+0.001*i.100)j._0.4-0.001*i.100
>> pd (_1.6+0.001*i.100)j._0.6+0.001*i.100
>> pd (_2+0.001*i.500)j._0.5+1e_12*i.500
>> pd 'show'
>> 
>> Or maybe that's getting to be too much?
>> 
>> Anyways... to take this further, I should probably pick a latitude and
>> draw a side view of a house and draw in the noon-time extreme sun
>> angles for winter and summer (along with the more typical
>> autumn/spring sun angles). And then maybe do some architectural
>> drawings. But this is probably enough for one message.
>> 
>> Thanks,
>> 
>> --
>> Raul
>> ----------------------------------------------------------------------
>> 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