The script used to create all of the functions used to create the 24 chaotic attractors
NB. N-Dimensional Chaotic Attractors with Crystallographic Symmetry
NB. Jeffrey Dumont, Flynn Heiss, Kevin Jones, Clifford Reiter, and Lisa Vislocki
NB. This script creates the functions used in that paper
NB. See the comments at the bottom to create the images


NB. Basic functions
sin=:1&o.					 
cos=:2&o.
x=:+/ . *

NB. Finite sets of dual lattices
]V0=:2p1*#:4 2 1 7           
]VB=:2p1*3 3 3#:>:i.26
V=:V0

NB. Propositions from the paper
prop1=:1 : '1&|@:(+/^:2@:(m."_*(sin,:cos)@:(V&x))) f.'
prop3a=:2 : 'n. proj 1&|@:+ +/@:(}:"1)@((%.n.)&(x"2 1)@:(,&1@u.@}:"1@(n.&x@(,&1)))) f.'

proj=: 1 : '(}:{:"1 +./m.~:0)&*'
pos=: \:~@~.@(* >&1e_14@:|)@(, ,/@:((((<: (*. -.@|:)@:= ]"0/~@i.)@{:@$|])@(+/ .*))"2/~))^:_


NB. Matrix representation of the symmetry operations
]i010=: 1 0 0 0,0 _1 0 0 ,0 0 1 0,:0 0 0 1
]i011=: 1 0 0 0,0 _1 0 0 ,0 0 _1 0,:0 0 0 1
]i101=:_1 0 0 0,0  1 0 0 ,0 0 _1 0,:0 0 0 1
]i110=:_1 0 0 0,0 _1 0 0 ,0 0  1 0,:0 0 0 1
]i111=:_1 0 0 0,0 _1 0 0 ,0 0 _1 0,:0 0 0 1

]h100=:1 0 0 0.5,0 1 0 0,  0 0 1 0  ,:0 0 0 1
]h010=:1 0 0 0,  0 1 0 0.5,0 0 1 0  ,:0 0 0 1
]h001=:1 0 0 0,  0 1 0 0,  0 0 1 0.5,:0 0 0 1
]h011=:1 0 0 0,  0 1 0 0.5,0 0 1 0.5,:0 0 0 1
]h101=:1 0 0 0.5,0 1 0 0,  0 0 1 0.5,:0 0 0 1
]h110=:1 0 0 0.5,0 1 0 0.5,0 0 1 0  ,:0 0 0 1
]h111=:1 0 0 0.5,0 1 0 0.5,0 0 1 0.5,:0 0 0 1

]q111=:1 0 0 0.25,0 1 0 0.25,0 0 1 0.25,:0 0 0 1

]m000=:h010 x i101
]m001=:h011 x i101
]m002=:h001 x i101
]m003=:h110 x i101
]m004=:h101 x i110
]m005=:1 0 0 0.25,0 _1 0 0.25,0 0 1 0.25,:0 0 0 1
]m006=:h101 x i101
]m007=:h011 x i110
]m008=:h001 x i110
]m009=:_1 0 0 0.5,0 1 0 0.5,0 0 _1 0.25,:0 0 0 1
]m010=:0 _1 0 0.5,1 0 0 0.5,0 0 1 0.25,:0 0 0 1
]m011=:0 _1 0 0,1 0 0 0,0 0 1 0.5,:0 0 0 1
]m012=:h111 x i110
]m013=:0 _1 0 0,1 0 0 0.5,0 0 1 0.25,:0 0 0 1
]m014=:_1 0 0 0.5,0 1 0 0,0 0 _1 0.75,:0 0 0 1
]m015=:_1 0 0 0,0 _1 0 0.5,0 0 _1 0.25,:0 0 0 1
]m016=:0 0 1 0,1 0 0 0,0 1 0 0,:0 0 0 1
]m017=:0 1 0 0.75,1 0 0 0.25, 0 0 _1 0.75,:0 0 0 1
]m018=:q111 x i111
]m019=:0 1 0 0,1 0 0 0,0 0 _1 0,:0 0 0 1
]m020=:0 _1 0 0,1 _1 0 0,0 0 1 0,:0 0 0 1
]m021=:0 _1 0 0,_1 0 0 0,0 0 _1 0,:0 0 0 1
]m022=:1 0 0 2r3,0 1 0 1r3,0 0 1 1r3,:0 0 0 1



]t100=:1 0 0 1,0 1 0 0 ,0 0 1 0,:0 0 0 1
]t010=:1 0 0 0,0 1 0 1 ,0 0 1 0,:0 0 0 1
]t001=:1 0 0 0,0 1 0 0 ,0 0 1 1,:0 0 0 1

NB. Computation of the group closure
$p002=: pos gens=:,:i111
$p004=: pos gens=:,:m000
$p012=: pos gens=:h110,i101,:i111
$p014=: pos gens=:m001,:i111
$p015=: pos gens=:m002,h110,:i111
$p018=: pos gens=:m003,:i110
$p019=: pos gens=:m004,:m001
$p035=: pos gens=:h110,i110,:i010
$p043=: pos gens=:i110,h011,h101,:m005
$p053=: pos gens=:m004,m006,:i111
$p062=: pos gens=:m000,m004,:i111
$p064=: pos gens=:h110,m001,m007,:i111
$p073=: pos gens=:m001,m004,h111,:i111
$p092=: pos gens=:m008,m009,:m010
$p135=: pos gens=:i110,m011,m003,:i111
$p141=: pos gens=:h111,m012,m013,m014,:m015
$p164=: pos gens=:i111,m020,:m019
$p166=: pos gens=:i111,m020,m022,:m019
$p194=: pos gens=:i111,m020,m008,:m019
$p199=: pos gens=:h111,m001,m004,:m016
$p205=: pos gens=:i111,m001,m004,:m016
$p225=: pos gens=:h011,h101,i110,i101,m019,i111,:m016
$p227=: pos gens=:h011,h101,m007,m003,m016,m017,:m018

NB. Parameters for our functions
par002=: 2 4 3$_0.073873749060000021 _0.13609153818 0.14952553020000001 _0.084409886700000006 _0.096959323080000007 0.12466034784000002 _0.033531863219999999 0.18997649225999999 _0.085092182100000011 _0.22429784520000001 _0.033884008020000016 0.21148321644000004 0.11842285589999998 _0.1070568684 _0.024783770880000004 _0.20083259555999999 0.14656720283999999 _0.12501760644000001 _0.030906217439999991 0.039210318540000018 0.20782379304000001 0.17449337249999999 _0.029883412080000012 _0.050505980759999999
par004=: 2 4 3$_0.11898397014000001 _0.14357987573999997 0.17302859363999998 0.011577570059999988 0.12422637024000001 0.052605354900000019 0.038200098299999978 _0.15094085201999999 _0.062899218059999998 _0.0071519636999999919 _0.083048743260000002 _0.14022261204 _0.1014348783 _0.035995403640000007 _0.17474589342000002 0.10576983648 _0.18635340233999997 _0.10163048363999999 0.036466029599999984 0.10456616267999998 0.16350074201999998 _0.10302206376 0.168180
par012=: 2 4 3$0.0076258301399999935 0.0073288029599999959 0.055191985020000001 0.071693906579999994 0.039488515379999999 0.023478673500000002 0.046068296580000001 0.089863588620000004 _0.042665846039999997 0.035126750700000001 _0.024698093399999996 _0.020852810999999999 _0.01319286114 0.027585209339999993 _0.055386518760000003 0.078780228659999993 _0.020695536180000005 _0.069874523279999989 _0.061112331000000006 _0.034944905699999994 0.02097073512 0.015146994959999993 0.055545327360000001 0.070318169279999995
par014=: 2 4 3$0.062403210149999992 0.010754224200000006 _0.0037529366999999978 0.07439301194999999 0.073353497249999997 0.0022300835999999936 _0.01898366265 _0.0084167808000000007 _0.010834879200000003 _0.0018133509000000019 _0.026988349200000001 0.0068157118499999943 _0.0483298848 _0.030372312299999999 _0.017451176099999997 _0.051916550999999991 _0.011471826299999998 _0.056984581350000001 0.010142856900000002 0.070998253499999997 0.017648282099999999 0.064677783749999995 _0.010487358149999997 _0.011026060800000001
par015=: 2 4 3$0.032543453399999998 _0.042178263300000005 0.0099290738000000003 _0.022055589700000003 0.011705130600000002 0.028129998099999998 _0.019121619400000001 0.022942866699999998 0.00076138169999999676 _0.0034569844999999991 _0.0015382436000000001 0.046740801700000001 _0.027345424500000007 0.0054518686999999958 0.029557797799999997 _0.022092115900000001 _0.0021905783000000013 _0.017049279000000001 _0.047231404500000004 _0.0182151295 _0.041680886400000006 _0.030657048100000001 0.046992661800000002 0.0056684808999999947
par018=: 2 4 3$0.022002244799999994 0.031730660000000008 0.017204353280000008 0.033567721279999997 0.012691898399999993 0.032737477920000001 _0.021207324639999997 0.048495252959999999 0.019718621760000003 0.050876460479999996 0.040671772159999994 0.050476507840000004 0.03866958287999999 _0.00031921407999999655 0.074969401120000015 0.010724853920000008 _0.06737773776 0.06236155728 _0.049306014400000001 _0.046183842879999999 _0.051845559200000002 _0.0083116620800000006 _0.014103982400000001 0.074370006879999992
par019=: 2 4 3$_0.038170508319999998 0.068267408159999987 0.010331397280000001 0.039794793439999997 0.031095317120000007 0.058996295520000006 0.03074050464000001 0.015662306719999998 0.036390643520000002 _0.062453913440000002 _0.062920967040000012 _0.072690444320000006 0.051702864319999993 0.010042893759999991 _0.0090829960000000029 _0.017913648640000002 0.045307874879999994 0.049454476799999994 _0.018608101120000001 0.053645547679999996 0.020721288639999998 _0.05730009920000001 _0.0027672272000000041 0.051212758879999994
par035=: 2 4 3$0.049700165200000007 _0.089322859200000007 _0.049291950399999999 _0.049809490599999999 0.051893277200000011 _0.029689131000000004 0.014775409200000001 _0.069695499600000002 0.027739478800000009 0.017421762200000003 0.007559436400000008 0.051449535000000005 _0.087664928400000008 0.015550372399999991 _0.04489055480000001 _0.075554228200000004 _0.039911626200000008 0.0052991583999999932 0.062955957599999987 _0.099218481999999997 0.034973614200000003 0.0015348689999999943 _0.0034549779999999974 _0.067813244600000003
par043=: 2 4 3$0.0058534475400000008 _0.021106887839999998 _0.023463571079999999 0.027761050319999998 0.019973387639999996 _0.0072736378799999985 _0.028031133059999998 0.00074684237999999897 0.01218013158 _0.0085281934199999999 0.0066537997200000016 _0.009587472960000001 0.023342803799999999 _0.017496107879999997 0.002914926899999999 _0.02882265216 0.017685356339999996 _0.0022152229199999983 0.028749363060000001 0.010545708419999999 0.001721978580000003 0.021294220739999998 _0.0080317470599999986 0.010428087539999999
par053=: 2 4 3$0.054412060800000009 _0.056492628479999994 _0.031605009759999997 0.014601768800000007 _0.028071428479999997 0.043503483200000005 _0.036956288800000001 _0.0043445169600000002 _0.058296502080000007 0.050690904000000002 _0.037976093600000004 _0.024204642720000002 0.072571860640000013 0.035263993120000003 0.041933673759999998 _0.020742754080000002 0.016534529439999997 _0.024161066399999997 0.0049584870400000017 _0.022705753759999999 _0.015602721119999998 0.0050665579200000008 0.033640528320000009 _0.043638362879999996
par062=: 2 4 3$_0.066530655840000008 0.059269806079999994 _0.012368256000000005 _0.033278107520000003 0.054847712000000007 0.065496559360000012 0.00067441280000000601 _0.025142656480000004 _0.012625949439999999 _0.044330749279999998 0.053099496639999993 _0.036757297600000002 _0.019899010879999998 _0.04267416752 0.05526663632 0.06635880672000001 _0.06753440544 _0.01075088192 _0.050071224000000004 0.052938899359999993 _0.015918032159999998 _0.014365918239999997 _0.0079864937600000012 0.011000835040000006
par064=: 2 4 3$0.04479345756 _0.036357088440000004 _0.013583396399999999 _0.056141888279999996 _0.016715907240000001 _0.024251553120000002 0.04414796076 0.034778367720000002 2.6833079999994956e_5 _0.02901564576 0.014042625359999996 _0.025595430120000002 0.017606917199999995 _0.00054153239999999987 0.018465213959999994 0.024851358600000002 _0.043214595119999998 0.05230100712 0.023027825400000004 0.028662652320000002 0.053199132119999999 _0.0021852249600000004 _0.0070745987999999982 0.017219315160000005
par073=: 2 26 3$0.0045138815800000011 0.0048078125400000003 0.0049053794000000006 0.0047117805999999998 _0.0091032738600000003 0.0012763798600000009 _0.00788358898 0.00052020267999999923 0.0030466116000000001 0.0044013196000000001 _0.0070214532399999995 _0.0095642832200000007 _0.0069079202400000005 _0.0014154722799999996 _0.0098424215000000002 _0.0015779303400000001 _0.00027513629999999955 _0.0042156771400000004 0.0071145364000000004 _0.0059866076999999995 0.0030844389600000002 0.00016562600000000094 0.0036762092399999992 0.0060488856800000003 0.0036216991 0.0098969176600000007 _0.00250473622 0.0028986830600000002 _0.0018336476999999997 0.0018834200000000002 _0.0053599068600000003 _0.0039545859000000008 _0.0047252142200000001 0.0033248863800000006 0.0013653950399999993 0.0081946713199999993 0.0078410142199999994 0.0039262824000000007 0.00902862938 0.0041741589000000006 _0.0049111151400000001 _0.0011121448000000001 0.0081823549600000007 0.00084012146000000064 _7.83623e_5 0.0029650413999999991 _0.0065491055200000009 0.0091838123999999997 _0.0076648062800000003 _0.0023990405599999998 _0.00067468340000000017 0.0005962402199999995 0.0010094391000000002 0.0056430328000000012 0.00245236754 _0.0030585876199999995 _0.0056819190799999994 0.0039861623399999992 _0.0045693124399999998 0.0035660786600000007 _0.0049157756399999999 0.00055904720000000019 _0.0040934740400000004 0.00098189048000000049 0.0026333056000000001 _0.0020324955600000004 _0.00015281666000000027 _0.00838953936 _0.0029879338200000005 0.0017964967399999999 _0.0062789859000000007 0.0090840568999999999 _0.0042554560600000001 _0.0014497705200000001 _0.0062928666600000002 _0.0042098364399999998 0.0052791207400000005 0.0061825144000000011 0.0095196668199999997 _0.0029596845600000001 _0.0034183773999999999 0.0073311616399999993 _0.0051660458400000003 _0.0057323464000000003 _0.0035456087599999996 0.0089538896800000004 0.0080238921200000007 _0.0024450060600000002 0.006783311299999999 0.0071133379399999997 _0.0061291777400000001 0.0069098506399999995 _0.0061400009199999994 0.0050046805000000007 _0.00633469728 _0.0072569697799999998 _0.0078909412400000011 _0.0030492458600000008 _0.0086750905199999995 _0.0022460726799999999 _0.0097433741000000004 0.0031116292799999992 _0.0028465683799999996 _0.00227463654 _0.0098159950200000009 0.0025718122000000011 0.0044478594000000003 _0.0048268736800000005 _0.0052657524400000003 _0.0015012274000000003 0.0088714163400000004 0.0018945368799999996 0.0014816674199999991 0.0023846038600000008 _0.0019626426399999997 _0.0061346602799999999 _0.0052350035199999999 _0.0047039948200000006 _4.0927840000000163e_5 _0.0078739164800000015 0.0030859448 0.0054745389000000009 _0.0094244933799999993 0.0025397999799999993 0.0064183131400000005 _0.0074107388600000001 0.0077120115600000008 _0.0042214025400000004 _0.0091122389199999997 _0.0093993855599999992 0.0045269865800000014 0.0050636008000000008 0.0039387791399999993 _0.00093885545999999984 0.00065641873999999995 _0.0075699217000000001 _0.0076737785199999997 0.0068045113999999993 0.0034231989799999997 _0.0062944299199999996 0.0095165723799999994 0.005032056840000001 _0.0062204136599999993 _0.0064922081200000006 0.0054582885400000008 _0.0025444319800000006 _0.0042681473600000002 0.0052475442000000008 _0.0045245242400000002 _0.00367885586 0.0094696315600000004 _0.0039021223200000001 _0.0029698260399999999 0.0061339439800000006 _0.0068032046400000002 _0.00146021548
par092=: 2 4 3$_0.029687198999999997 0.0472474066 _0.012835604200000001 _0.027998467900000004 0.029751619300000001 0.0354658214 _0.025938430499999998 _0.047200023600000002 0.0092038948999999988 _0.010137918400000001 0.012005675100000002 _0.020617016900000004 _0.010202313099999999 0.029725245199999997 _0.0078032981000000006 0.049970495699999999 _0.045877973700000005 0.028897027799999999 _0.027653745100000002 0.023506343399999997 _0.028885711400000003 0.017850170799999999 0.0078211117000000063 0.049425694899999997
par135=: 2 26 3$_0.00088989849244599964 0.0028025413656849987 _0.0022277069184774992 0.0028723239653179996 0.0025763916393885 _0.00093864528593799984 _0.0012957985612744994 0.00044362628572849964 _0.0023439426678479995 0.0021015933536559991 0.00067850506192049969 _0.0029278295273099993 0.0014007096563889996 _0.0014177589084789996 0.0007956132886105 0.00033964347796250019 0.0020649783914504995 _0.00027563172293049995 _0.0029987806699569991 0.001290825281774 0.0011395757838989994 0.0019922794105854992 0.00065607800799749995 _0.0026824167450229994 0.0014403033131169993 0.00093133692796449979 0.00013428094341250024 _0.00011865327143549989 0.0011825249106384998 _9.8259688222499981e_5 _0.002821983233990999 _0.0021061523650569998 0.0017837441117794994 _0.00010065340555199985 _0.00046871786398349998 0.00039141674578600002 0.0022778442053974991 0.00026208460187000012 0.00040200157344 _0.002328021071568499 0.0020218711241284998 _0.00084296913849549984 0.00068925071906399994 0.0012529128428554995 0.0027126534859874991 0.0018181471377189996 0.00017854026746349982 0.0015608221506624991 0.00068593707919849961 0.00031208238805149977 0.0011917235093979997 0.0024151048592769993 0.0015554591864859993 0.0018030760938249994 0.0023864425828639992 0.00042502990833599973 0.0014487483852324995 0.0029471750938109991 0.0013148749572344997 _0.0022520594488184996 0.0011738857140379992 0.00070676159930099986 _0.0025332313117794989 0.0023979406107864989 _0.00099957931315099949 0.0026975160102734991 0.0029096499061684994 _0.0027704779686764987 _0.00031414068552499986 0.00071550725106799982 _0.0015490994773354994 0.0016651104900489995 0.0014120349615794993 0.00033819784977399969 0.0021022905045054996 0.00022851065356099966 0.0018901387839554994 _0.00047443439509650004 0.0016496373146379997 0.0029448587707684992 _0.0011145599452189996 _0.0013124147046654994 0.0010170980897709996 _0.00026732347481349974 0.0028009115473669986 0.00079743893479349969 0.00060575280784599961 _0.002891505757915499 _0.0025392096037304994 _0.00074320912533599982 _0.0016901720888159992 _0.0028607813027559993 0.0028326693458364995 _0.00079721312744049973 _0.002893979984283999 _0.0015390692397919997 _9.4653091330999949e_5 _0.0030409346406619986 _0.0015049074428779995 0.0022136171735509988 _0.0024220799144524991 0.0028849226383109998 0.0013998629731094994 0.0026025509996469992 0.00070971287548900002 _0.0015991536879794996 _7.294163951300007e_5 0.002936956651027999 _8.8493523247000139e_5 _0.0029365634926734993 0.00061288093604849989 0.0013244543952609996 0.00057858154861500021 0.0027871354068654988 0.00043480010667199968 0.0014019195976204993 0.00066722931900449998 0.0022327283245464993 0.0024370398675529993 _0.00087641846022349984 _0.0018114821767889998 0.002336642145422499 0.0029520830426049993 _0.0013663009362934995 0.0017926997355489996 _0.0016709934718054996 _0.002951193251644499 _0.0019294062494969993 _0.0024757674103024993 0.00091722431516149956 0.00020015559998149958 _0.00016025212884899985 0.0016329986501299992 _0.002943587355769499 _0.0018505871216279994 0.0021177817357444992 _0.0010007884513604998 0.0006260019018504995 0.0028425028429899996 0.00021979429992999988 0.0013983121125379994 0.00087118303054099994 _0.0010112088541764999 0.0019117988666994996 _0.0014433863761654996 0.0020031883488689996 0.0014976597617334998 _0.0023553394176624989 _0.00085508330329799997 _0.0021580457515879997 _0.00044790613139799977 _0.0026687686256954991 _0.00034877419702899982 0.0026460766414309984 0.0022251343888324993 0.0025591898009514999
par141=: 2 4 3$_0.0021447969000000012 _0.047600567900000001 _0.022743888000000004 0.043475942999999996 0.00017415429999999567 0.027012405500000003 _0.0024994106000000016 _0.0075928535999999994 _0.013088967699999999 0.013720193700000006 _0.0047041274000000025 0.037730904799999999 0.043317799099999998 0.042250715800000005 0.0077819803000000022 _0.0082569846999999974 0.024859452299999998 0.012816076799999999 _0.00019563129999999873 0.012025269800000005 0.0087111230999999956 0.0078462997000000034 _0.027240513399999999 _0.031307051699999998
par162=: 2 4 3$0.041613132259999998 _0.048085001160000002 0.055386811340000008 0.026140522659999995 0.023764453159999997 _0.010835199900000002 0.032796276380000003 0.027017756079999997 0.067428076660000016 _0.036314996340000003 0.053856756240000012 _0.069495963740000014 0.0013392542799999952 _0.031151245859999999 0.041012380780000003 _0.064915757760000012 _0.019140107280000002 0.032219102160000006 _0.013549524380000002 0.053144376740000006 _0.0024598894600000002 _0.043361694319999998 0.06000550780000001 _0.047428217480000007
par164=: 2 4 3$_0.078980728400000005 _0.029100910800000004 _0.099005031000000007 0.022445103800000001 0.034862182799999995 _0.071293381000000003 _0.027851830800000001 0.09428038620000001 _0.029548333199999999 _0.018835755200000005 0.0274652562 0.0085636912000000009 _0.070039731800000005 0.042230617400000003 _0.030013117400000001 _0.030461700199999997 0.030207394200000005 0.095674609000000008 0.0031553364000000087 0.03174028520000001 0.05897399720000001 _0.024028161400000005 _0.041307288200000007 _0.051592688200000007
par166=: 2 4 3$_0.0060391978199999981 0.019202626199999996 _0.0014604701399999996 _0.0061212314999999984 0.020462928839999998 0.00044576813999999795 _0.0079747224000000002 0.0088415104199999987 _0.02073414984 0.0011441544599999976 0.029804146199999999 _0.021714091080000001 _0.028728673859999998 _0.022820591879999998 _0.02568704502 _0.022165414799999998 0.0058740979200000007 0.02596410084 _0.0013569705000000009 _0.0066029727599999999 0.023837712419999997 0.02043284766 _0.025128920519999997 _0.0017664481800000009
par194=: 2 4 3$_0.0048918243199999982 0.023109680480000002 0.004401093679999999 _0.030818103280000002 _0.03986068936 _0.018605770320000003 0.012819030319999997 0.0094430374399999996 _0.01086881 _0.032088908160000006 _0.038278477120000001 0.013635100959999997 _0.0348573576 _0.0076083721600000015 _0.033910627919999999 _0.015922843360000001 _0.015227652319999998 _0.011152077359999998 0.0070361287999999968 0.016217554080000002 0.0084315701600000022 0.02940001456 _0.033954422640000002 _0.031980976160000001
par199=: 2 4 3$_0.0055537147000000011 _0.041282584499999997 _0.036397146499999998 _0.026840003000000001 7.0971500000005519e_5 _0.0071811045999999991 0.0071753469999999986 _0.0039429245000000002 0.031268985800000003 0.037845798 _0.0256719392 0.031718403799999996 _0.0087859202999999997 0.035037659499999999 _0.022056434499999999 _0.0024942511999999973 _0.020879030100000001 _0.013857677899999999 _0.0059914819999999985 0.0011625447999999983 0.038891260400000009 0.045414558500000007 _0.0175150125 0.025185466199999996
par205=: 2 4 3$0.015461585280000001 0.0028638361799999987 0.012495191940000002 0.0066910351199999975 0.016227952860000002 _0.016795821299999996 0.012631486680000002 0.017396845199999997 0.0087775394400000008 _0.015894618599999997 _0.020854741320000002 0.014362768680000002 0.01505370606 _0.012361784699999998 0.01548533742 _0.01793357298 _0.029560630079999997 _0.025509740399999998 0.01779402234 0.0241344114 0.02705301438 1.3051619999999707e_5 _0.020640565860000001 0.014010523679999999
par225=: 2 4 3$_0.016549702360000001 0.0091530679599999987 _0.0043863578800000004 _0.0015162850799999995 _0.0042027644000000013 0.0041387385200000008 _0.00022131015999999893 0.00044021531999999919 _0.0013006539199999988 0.019909907840000001 _0.0141789306 0.014713526680000002 0.010243262959999999 _0.0014794197199999993 0.015393045719999998 _0.0090801239600000003 _0.0096432640000000003 0.0056622940399999998 0.0061759662000000007 _0.00053544207999999926 0.00082504527999999861 _0.01346356296 _0.0021024577999999993 _0.01600758716
par227=: 2 26 3$_0.00059426395999999989 0.00020567203199999985 0.00072984678800000014 _0.001464971832 _0.0017815292760000002 0.0018374963160000001 _0.00119938594 0.0019205266999999999 _0.0017076895279999999 _0.001137853792 9.1325655999999978e_5 _0.001089659004 _0.0018988340839999999 _0.0017044047399999999 _0.0019304259 _0.00066805438000000006 1.0053784000000122e_5 0.00097395762000000025 0.0013057833479999999 _0.001699210332 0.0013719718599999999 _0.001268945024 0.0008410284479999999 _0.00083484896799999994 0.00069346130400000001 _0.00099580237200000009 _0.00045043870399999995 0.0014767082560000002 _0.00096431910400000007 0.00068885295599999986 0.0015516612479999998 _0.0012293560559999998 _0.0017872284960000001 _0.0019492805239999999 _0.0015577143879999999 _0.00050571186400000007 0.00050070201599999994 _0.00070119658400000012 _0.0010109601160000002 0.00079338422400000003 _0.0015912911000000001 _0.00082951091999999989 _0.0015899877680000001 0.0010755887799999999 0.0014206415280000001 0.000722195304 0.0019364799599999999 _0.0015812875760000001 _0.00070025332800000006 _0.0011576787120000001 _0.0011060460600000003 _0.001316125108 _0.00011468361599999999 0.00051252801999999997 _0.0019415645680000001 0.00012431637999999978 0.0013854369759999999 0.0010392563400000001 _0.0012186403320000002 _0.0016880400120000002 0.001111575068 _0.0017577925480000002 0.00078068996799999992 0.0010563418160000001 0.0019369523640000001 _0.0016415924880000001 0.001755062148 0.001329581708 _0.0017202123600000001 0.00039088478800000014 0.0016006625080000002 _0.0016652147079999999 0.00073640400400000017 0.00074210950799999994 0.00063451102400000005 0.0002268282519999998 0.00030249516400000022 3.6284059999999842e_5 0.001826262968 _0.001998272576 _0.00096717537599999993 0.00068350049600000016 _0.00040710015199999996 0.0018677853359999998 _0.00013182001999999994 0.00050094966400000016 _0.00053897688399999998 0.001415530184 _0.0011841660119999999 0.0017218684280000001 _0.0005573103800000001 0.0012844852360000001 0.00034338396799999993 _0.00074563356400000002 0.00013674732799999977 _0.0016876007880000001 0.00049356307999999993 _0.00068526015199999986 _0.001167309232 0.0010337746519999999 _0.001349375732 0.0010421358920000001 _0.00082203202400000011 0.00010782624399999997 0.00023570084800000004 0.001424194096 0.00043019249200000023 _0.001754752772 _0.00012983589200000001 0.00184820122 _0.0012820822800000001 4.3185843999999922e_5 0.0018245445039999999 0.0011194821400000001 _0.00086363199999999992 0.00093699967999999998 0.00015365271599999985 _0.0015587468360000001 _0.0018580247320000001 0.00017834251199999997 0.0014026454759999999 _0.0017374555080000001 _0.0014147165400000001 _0.001140850292 0.001729202972 _0.0012856395320000001 0.00025642407600000007 0.0017194773639999999 _0.00074393211600000007 0.00073298577200000018 _0.000708074068 _0.00060083039600000016 0.0018435659719999999 0.00081329894799999996 0.0011154741920000003 _0.00022522351999999991 _0.001331699704 _0.001876901224 _0.0010788124919999999 0.00039849977599999996 0.0015857798920000002 0.00020270892799999985 _0.0010709999999999999 _0.00029693788400000009 0.0013650154240000001 0.0018142394400000002 _7.7693903999999982e_5 _0.00180142644 _0.00057412094000000005 _0.001250606884 0.0010501492560000001 0.001858575572 0.0010796575119999998 0.001803855988 0.001407607744 0.001663371952

NB. Creates the functions with space group symmetry
f002=:par002 prop1 prop3a G=:p002
f004=:par004 prop1 prop3a G=:p004
f012=:par012 prop1 prop3a G=:p012
f014=:par014 prop1 prop3a G=:p014
f015=:par015 prop1 prop3a G=:p015
f018=:par018 prop1 prop3a G=:p018
f019=:par019 prop1 prop3a G=:p019
f035=:par035 prop1 prop3a G=:p035
f043=:par043 prop1 prop3a G=:p043
f053=:par053 prop1 prop3a G=:p053
f062=:par062 prop1 prop3a G=:p062
f064=:par064 prop1 prop3a G=:p064
f073=:par073 prop1 prop3a G=:p073
f092=:par092 prop1 prop3a G=:p092
f135=:par135 prop1 prop3a G=:p135
f162=:par162 prop1 prop3a G=:p162
f164=:par164 prop1 prop3a G=:p164
f166=:par166 prop1 prop3a G=:p166
f194=:par194 prop1 prop3a G=:p194
f199=:par199 prop1 prop3a G=:p199
f205=:par205 prop1 prop3a G=:p205
f225=:par225 prop1 prop3a G=:p225
f227=:par227 prop1 prop3a G=:p227

NB. Function iteration
]f002^:(i.5) 0.1 0.2 0.3


NB. The following lines can be uncommented in order to actaully create an image
NB. Get the script raster3.ijs which you can download from
NB. http://www.lafayette.edu/~reiterc/j
NB. and place in your J directory

NB. load 'raster3.ijs'
NB. imsz=:500
NB. VPT3=: 3 : 0
NB. 1 0 0 VPT3 y.
NB. :
NB. ci=.0 0 0				NB. center of interest of object
NB. vp=.x.				NB. viewpoint  
NB. up=.0 0 1				NB. up in the viewplane
NB. d=.2				NB. distance 
NB. unit=. % +/&.(*:"_)
NB. cross=.[: -/ . * (=i.3)"_,"1 2 ,:
NB. n=.unit vp-ci
NB. vo=.vp-d*n
NB. v=.unit up - n * n +/ . * up
NB. u=.v cross n
NB. t0=.u,.v,.n
NB. r=.-vo +/ . * t0
NB. t=.(t0,.0),r,1
NB. vpt3=.3&{."1@(+/ .*&t)@:(,&1"1)
NB. vpt3 y.
NB. )

NB. collate2v=:3 : 0
NB. 500 500 collate2v y.
NB. :
NB. xy=. y. +/ . * 1,1{x.
NB. n=.~.xy
NB. xy=.#/.~ xy
NB. xy n}(*/x.)$0
NB. )

NB. clnv254=:3 : 0
NB. o=./:~ y.
NB. m=.(}.~:}:) o
NB. p=.((#i.@#),#) m
NB. n=.p{o
NB. (n i. y.){ 0 , >:@<.@(253.99&*)@(+/\ % +/)@:^.@ (}.-}:) p
NB. )

NB. d0=:f002^:(100+i.50000) 0.1 0.2 0.3      NB. change function for other images

NB. d1=:2{."1]2 3 1 VPT3 d0
NB. d1=:(imsz-1)<.0>.<.imsz*(2+d1)%4
NB. b=:255<.(,~imsz) collate2v d1
NB. d1=:2{."1]2 3 1 VPT3 d0 +"1]0 0 1
NB. d1=:(imsz-1)<.0>.<.imsz*(2+d1)%4
NB. b=:b+255<.(,~imsz) collate2v d1
NB. d1=:2{."1]2 3 1 VPT3 d0 +"1]0 1 0
NB. d1=:(imsz-1)<.0>.<.imsz*(2+d1)%4
NB. b=:b+255<.(,~imsz) collate2v d1
NB. d1=:2{."1]2 3 1 VPT3 d0 +"1]1 0 0
NB. d1=:(imsz-1)<.0>.<.imsz*(2+d1)%4
NB. b=:b+255<.(,~imsz) collate2v d1
NB. d1=:2{."1]2 3 1 VPT3 d0 +"1]0 1 1
NB. d1=:(imsz-1)<.0>.<.imsz*(2+d1)%4
NB. b=:b+255<.(,~imsz) collate2v d1
NB. d1=:2{."1]2 3 1 VPT3 d0 +"1]1 0 1
NB. d1=:(imsz-1)<.0>.<.imsz*(2+d1)%4
NB. b=:b+255<.(,~imsz) collate2v d1
NB. d1=:2{."1]2 3 1 VPT3 d0 +"1]1 1 0
NB. d1=:(imsz-1)<.0>.<.imsz*(2+d1)%4
NB. b=:b+255<.(,~imsz) collate2v d1
NB. d1=:2{."1]2 3 1 VPT3 d0 +"1]1 1 1
NB. d1=:(imsz-1)<.0>.<.imsz*(2+d1)%4
NB. b=:b+255<.(,~imsz) collate2v d1

NB. P256=:0,~255,hue 5r6*(i.%<:)254 
NB. (P256;(,~imsz)$clnv254 b) writebmp8 's002.bmp'