This might be easier on the eyes:

   vc=:_2 */\ 1 2 1 1 2 o. 5 $ o.

   vc 1.25,_0.55
0.110616 0.698401 _0.707107


On Sat, Jan 6, 2018 at 7:05 PM, Henry Rich <[email protected]> wrote:

> Not really any better, but you might enjoy playing with it:
>
> vec2 =: ((+.@:(* {:) , {.@]) +.)~/@:(^@:j.)
>
> Henry Rich
>
>
> On 1/6/2018 5:07 PM, Jerry wrote:
>
>> I am a relative newbie and am trying to teach myself the intricacies by
>> addressing a simple problem: some geometric operations on the surface of a
>> unit sphere.  The first step is to take latitude and longitude angles and
>> create a Cartesian vector pointing from the center of the sphere to that
>> point.  I can do that via:
>>
>> vec =: ((1 o. }:)*(2 o. {:)),((1 o. }:)*(1 o. {:)),(2 o. }:)
>>
>> this verb yields the desired vector
>>
>>     [vec o. (1.25,_0.55)
>>
>> 0.110616 0.698401 _0.707107
>>
>>    +/([vec o. (1.25,_0.55))^2
>>
>> 1
>>
>> Is there a shorter, less verbose way of writing the verb 'vec'?
>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
>
> ---
> This email has been checked for viruses by AVG.
> http://www.avg.com
>
>
> ----------------------------------------------------------------------
> 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