--* From postmaster%watson.vnet.ibm.com@yktvmv.watson.ibm.com  Thu Mar 31 06:16:35 1994
--* Received: from yktvmv.watson.ibm.com by leonardo.watson.ibm.com (AIX 3.2/UCB 5.64/920123)
--*           id AA23737; Thu, 31 Mar 1994 06:16:35 -0500
--* X-External-Networks: yes
--* Received: from watson.vnet.ibm.com by yktvmv.watson.ibm.com (IBM VM SMTP V2R3)
--*    with BSMTP id 1575; Thu, 31 Mar 94 06:16:11 EST
--* Received: from YKTVMV by watson.vnet.ibm.com with "VAGENT.V1.0"
--*           id <A.THEMOS.NOTE.YKTVMV.6793.Mar.31.06:16:10.-0500>
--*           for asbugs@watson; Thu, 31 Mar 94 06:16:11 -0500
--* Received: from nagrs1.nag.co.uk by watson.ibm.com (IBM VM SMTP V2R3) with TCP;
--*    Thu, 31 Mar 94 06:15:56 EST
--* Received: by nagrs1.nag.co.uk (AIX 3.2/UCB 5.64/4.03)
--*           id AA29623; Thu, 31 Mar 1994 12:14:24 +0100
--* Date: Thu, 31 Mar 1994 12:14:24 +0100
--* From: themos@nagrs1.nag.co.uk (Theodore Thomas Tsikas)
--* Message-Id: <9403311114.AA29623@nagrs1.nag.co.uk>
--* To: asbugs@watson.ibm.com
--* Subject: [1] executable fails with illegal instruction [cantor.as][v34.5]

--@ Fixed  by:  PAB   Tue Aug 2 12:46:59 EDT 1994 
--@ Tested by:  none.as 
--@ Summary:    Recent changes. If possible, should be tested on a sun, or similar. 

#include "aslib.as"
#library asdem "asdem"
import from asdem

import from OutPort

a1(l:List List DoubleFloat):List List DoubleFloat==
   concat( [cons(0.0,x) for x in l],[cons(1.0,x) for x in l])

raise(b:Complex DoubleFloat,n:SingleInteger):Complex DoubleFloat==
   c:Complex DoubleFloat:=complex(1.0,0.0)
   for i in 1..n repeat
    c:= c*b
   c

fm(b:Complex DoubleFloat,n:SingleInteger):Matrix DoubleFloat ==
   L:List List DoubleFloat:=
     [ [ real(f:=raise(b,i)),imag(f)]  for i in 1..n]
   matrix L

gm(n:SingleInteger):Matrix DoubleFloat ==
  l:List List DoubleFloat:=[empty()$List(DoubleFloat)]
  for i in 1..n repeat l:=a1(l)
  matrix l

ma(b:Complex DoubleFloat,n:SingleInteger):Matrix DoubleFloat ==
  gm(n)*fm(b,n)

b:Complex DoubleFloat:=complex(0.2,0.3)
j:SingleInteger:=15
m:Matrix DoubleFloat :=ma(b,j)
print(m)()



 
