#!/usr/bin/perl

#-----------------------------
# evenly permutation A4 (12)
#  0123  2301  1032  3210
#  2013  1320  1203  0312
#  3021  2130  0231  3102
#-----------------------------
sub sq {
  local ($x) = @_;
  return $x*$x;
}

sub d2 {
  local ($x0,$x1,$x2,$x3,$y0,$y1,$y2,$y3) = @_;

  return sq($x0-$y0)+sq($x1-$y1)+sq($x2-$y2)+sq($x3-$y3);
}

sub tt {
  local ($u,$t) = @_;
  return (2-$u/(2*$t));
}

# tau = (sqrt(5)+1)/2;
# tau-inv = 1/tau = tau - 1 = (sqrt(5)-1)/2;
# sqrt(5)=2*tau-1;
$r5 = sqrt(5.0);
$t = (sqrt(5.0)+1)/2;
$ti = $t-1;
$t2 = $t+1;
$ti2 = 2-$t;

#---------------------------------------
# 120-cell{5,3,3} vertices 600
# permutation of 
#  (+-2,+-2,0,0)         : 4C2*4= 24
#  (+-r5,+-1,+-1,+-1)    :  4*16= 64
#  (+-t,+-t,+-t,+-ti^2)  :  4*16= 64
#  (+-t^2,+-ti,+-ti,+-ti):  4*16= 64
# even permutation of
#  (+-t^2,+-ti^2,+-1,0)  :  12*8= 96
#  (+-r5,+-ti,+-t,0)     :  12*8= 96
#  (+-2,+-1,+-t,+-ti)    : 12*16=192
#---------------------------------------
#(+-2,+-2,0,0):24
#  (2,2,0,0):6
$i = 0; $p{$i,0}=2; $p{$i,1}=2; $p{$i,2}=0; $p{$i,3}=0;
$i = 1; $p{$i,0}=2; $p{$i,1}=0; $p{$i,2}=2; $p{$i,3}=0;
$i = 2; $p{$i,0}=2; $p{$i,1}=0; $p{$i,2}=0; $p{$i,3}=2;
$i = 3; $p{$i,0}=0; $p{$i,1}=2; $p{$i,2}=2; $p{$i,3}=0;
$i = 4; $p{$i,0}=0; $p{$i,1}=2; $p{$i,2}=0; $p{$i,3}=2;
$i = 5; $p{$i,0}=0; $p{$i,1}=0; $p{$i,2}=2; $p{$i,3}=2;

#  (-2,-2,0,0):6
for($k = 0; $k < 6; $k++){
  $i = $k+6;
  $j = $k;
  $p{$i,0} = -$p{$j,0};
  $p{$i,1} = -$p{$j,1};
  $p{$i,2} = -$p{$j,2};
  $p{$i,3} = -$p{$j,3};
}

#  (2,-2,0,0):12
$i = 12; $p{$i,0}=-2; $p{$i,1}= 2; $p{$i,2}= 0; $p{$i,3}= 0;
$i = 13; $p{$i,0}=-2; $p{$i,1}= 0; $p{$i,2}= 2; $p{$i,3}= 0;
$i = 14; $p{$i,0}=-2; $p{$i,1}= 0; $p{$i,2}= 0; $p{$i,3}= 2;
$i = 15; $p{$i,0}= 0; $p{$i,1}=-2; $p{$i,2}= 2; $p{$i,3}= 0;
$i = 16; $p{$i,0}= 0; $p{$i,1}=-2; $p{$i,2}= 0; $p{$i,3}= 2;
$i = 17; $p{$i,0}= 0; $p{$i,1}= 0; $p{$i,2}=-2; $p{$i,3}= 2;

for($k = 0; $k < 6; $k++){
  $i = $k+18;
  $j = $k+12;
  $p{$i,0} = -$p{$j,0};
  $p{$i,1} = -$p{$j,1};
  $p{$i,2} = -$p{$j,2};
  $p{$i,3} = -$p{$j,3};
}

#(+-r5,+-1,+-1,+-1):64 -> 88
$i = 24; $p{$i,0}=$r5; $p{$i,1}= 1; $p{$i,2}= 1; $p{$i,3}= 1;
$i = 25; $p{$i,0}=$r5; $p{$i,1}=-1; $p{$i,2}= 1; $p{$i,3}= 1;
$i = 26; $p{$i,0}=$r5; $p{$i,1}= 1; $p{$i,2}=-1; $p{$i,3}= 1;
$i = 27; $p{$i,0}=$r5; $p{$i,1}=-1; $p{$i,2}=-1; $p{$i,3}= 1;
$i = 28; $p{$i,0}=$r5; $p{$i,1}= 1; $p{$i,2}= 1; $p{$i,3}=-1;
$i = 29; $p{$i,0}=$r5; $p{$i,1}=-1; $p{$i,2}= 1; $p{$i,3}=-1;
$i = 30; $p{$i,0}=$r5; $p{$i,1}= 1; $p{$i,2}=-1; $p{$i,3}=-1;
$i = 31; $p{$i,0}=$r5; $p{$i,1}=-1; $p{$i,2}=-1; $p{$i,3}=-1;

for($k = 0; $k < 8; $k++){
  $i = $k+32;
  $j = $k+24;
  $p{$i,0} = $p{$j,1};
  $p{$i,1} = $p{$j,0};
  $p{$i,2} = $p{$j,2};
  $p{$i,3} = $p{$j,3};
}

for($k = 0; $k < 8; $k++){
  $i = $k+40;
  $j = $k+24;
  $p{$i,0} = $p{$j,2};
  $p{$i,1} = $p{$j,1};
  $p{$i,2} = $p{$j,0};
  $p{$i,3} = $p{$j,3};
}

for($k = 0; $k < 8; $k++){
  $i = $k+48;
  $j = $k+24;
  $p{$i,0} = $p{$j,3};
  $p{$i,1} = $p{$j,1};
  $p{$i,2} = $p{$j,2};
  $p{$i,3} = $p{$j,0};
}

for($k = 0; $k < 32; $k++){
  $i = $k+56;
  $j = $k+24;
  $p{$i,0} = -$p{$j,0};
  $p{$i,1} = -$p{$j,1};
  $p{$i,2} = -$p{$j,2};
  $p{$i,3} = -$p{$j,3};
}

#(+-t,+-t,+-t,+-ti2):64 --> 152
$i = 88; $p{$i,0}= $t; $p{$i,1}= $t; $p{$i,2}= $t; $p{$i,3}=$ti2;
$i = 89; $p{$i,0}=-$t; $p{$i,1}= $t; $p{$i,2}= $t; $p{$i,3}=$ti2;
$i = 90; $p{$i,0}= $t; $p{$i,1}=-$t; $p{$i,2}= $t; $p{$i,3}=$ti2;
$i = 91; $p{$i,0}=-$t; $p{$i,1}=-$t; $p{$i,2}= $t; $p{$i,3}=$ti2;
$i = 92; $p{$i,0}= $t; $p{$i,1}= $t; $p{$i,2}=-$t; $p{$i,3}=$ti2;
$i = 93; $p{$i,0}=-$t; $p{$i,1}= $t; $p{$i,2}=-$t; $p{$i,3}=$ti2;
$i = 94; $p{$i,0}= $t; $p{$i,1}=-$t; $p{$i,2}=-$t; $p{$i,3}=$ti2;
$i = 95; $p{$i,0}=-$t; $p{$i,1}=-$t; $p{$i,2}=-$t; $p{$i,3}=$ti2;

for($k = 0; $k < 8; $k++){
  $i = $k+96;
  $j = $k+88;
  $p{$i,0} = $p{$j,3};
  $p{$i,1} = $p{$j,1};
  $p{$i,2} = $p{$j,2};
  $p{$i,3} = $p{$j,0};
}

for($k = 0; $k < 8; $k++){
  $i = $k+104;
  $j = $k+88;
  $p{$i,0} = $p{$j,0};
  $p{$i,1} = $p{$j,3};
  $p{$i,2} = $p{$j,2};
  $p{$i,3} = $p{$j,1};
}

for($k = 0; $k < 8; $k++){
  $i = $k+112;
  $j = $k+88;
  $p{$i,0} = $p{$j,0};
  $p{$i,1} = $p{$j,1};
  $p{$i,2} = $p{$j,3};
  $p{$i,3} = $p{$j,2};
}

for($k = 0; $k < 32; $k++){
  $i = $k+120;
  $j = $k+88;
  $p{$i,0} = -$p{$j,0};
  $p{$i,1} = -$p{$j,1};
  $p{$i,2} = -$p{$j,2};
  $p{$i,3} = -$p{$j,3};
}

#(+-t2,+-ti,+-ti,+-ti):64 --> 216
$i = 152; $p{$i,0}=$t2; $p{$i,1}= $ti; $p{$i,2}= $ti; $p{$i,3}= $ti;
$i = 153; $p{$i,0}=$t2; $p{$i,1}=-$ti; $p{$i,2}= $ti; $p{$i,3}= $ti;
$i = 154; $p{$i,0}=$t2; $p{$i,1}= $ti; $p{$i,2}=-$ti; $p{$i,3}= $ti;
$i = 155; $p{$i,0}=$t2; $p{$i,1}=-$ti; $p{$i,2}=-$ti; $p{$i,3}= $ti;
$i = 156; $p{$i,0}=$t2; $p{$i,1}= $ti; $p{$i,2}= $ti; $p{$i,3}=-$ti;
$i = 157; $p{$i,0}=$t2; $p{$i,1}=-$ti; $p{$i,2}= $ti; $p{$i,3}=-$ti;
$i = 158; $p{$i,0}=$t2; $p{$i,1}= $ti; $p{$i,2}=-$ti; $p{$i,3}=-$ti;
$i = 159; $p{$i,0}=$t2; $p{$i,1}=-$ti; $p{$i,2}=-$ti; $p{$i,3}=-$ti;

for($k = 0; $k < 8; $k++){
  $i = $k+160;
  $j = $k+152;
  $p{$i,0} = $p{$j,1};
  $p{$i,1} = $p{$j,0};
  $p{$i,2} = $p{$j,2};
  $p{$i,3} = $p{$j,3};
}

for($k = 0; $k < 8; $k++){
  $i = $k+168;
  $j = $k+152;
  $p{$i,0} = $p{$j,2};
  $p{$i,1} = $p{$j,1};
  $p{$i,2} = $p{$j,0};
  $p{$i,3} = $p{$j,3};
}

for($k = 0; $k < 8; $k++){
  $i = $k+176;
  $j = $k+152;
  $p{$i,0} = $p{$j,3};
  $p{$i,1} = $p{$j,1};
  $p{$i,2} = $p{$j,2};
  $p{$i,3} = $p{$j,0};
}

for($k = 0; $k < 32; $k++){
  $i = $k+184;
  $j = $k+152;
  $p{$i,0} = -$p{$j,0};
  $p{$i,1} = -$p{$j,1};
  $p{$i,2} = -$p{$j,2};
  $p{$i,3} = -$p{$j,3};
}

# even perm (+-t2,+-ti2,+-1,0):96 --> 312
$i = 216; $p{$i,0}= $t2; $p{$i,1}= $ti2; $p{$i,2}= 1; $p{$i,3}=0;
$i = 217; $p{$i,0}= $t2; $p{$i,1}=-$ti2; $p{$i,2}= 1; $p{$i,3}=0;
$i = 218; $p{$i,0}= $t2; $p{$i,1}= $ti2; $p{$i,2}=-1; $p{$i,3}=0;
$i = 219; $p{$i,0}= $t2; $p{$i,1}=-$ti2; $p{$i,2}=-1; $p{$i,3}=0;
$i = 220; $p{$i,0}=-$t2; $p{$i,1}= $ti2; $p{$i,2}= 1; $p{$i,3}=0;
$i = 221; $p{$i,0}=-$t2; $p{$i,1}=-$ti2; $p{$i,2}= 1; $p{$i,3}=0;
$i = 222; $p{$i,0}=-$t2; $p{$i,1}= $ti2; $p{$i,2}=-1; $p{$i,3}=0;
$i = 223; $p{$i,0}=-$t2; $p{$i,1}=-$ti2; $p{$i,2}=-1; $p{$i,3}=0;

for($k = 0; $k < 8; $k ++){
  $j = $k+224;
  $i = $k+216;
  $p{$j,0} = $p{$i,2};
  $p{$j,1} = $p{$i,3};
  $p{$j,2} = $p{$i,0};
  $p{$j,3} = $p{$i,1};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+232;
  $i = $k+216;
  $p{$j,0} = $p{$i,1};
  $p{$j,1} = $p{$i,0};
  $p{$j,2} = $p{$i,3};
  $p{$j,3} = $p{$i,2};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+240;
  $i = $k+216;
  $p{$j,0} = $p{$i,3};
  $p{$j,1} = $p{$i,2};
  $p{$j,2} = $p{$i,1};
  $p{$j,3} = $p{$i,0};
}

#  2013  1320  1203  0312
for($k = 0; $k < 8; $k ++){
  $j = $k+248;
  $i = $k+216;
  $p{$j,0} = $p{$i,2};
  $p{$j,1} = $p{$i,0};
  $p{$j,2} = $p{$i,1};
  $p{$j,3} = $p{$i,3};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+256;
  $i = $k+216;
  $p{$j,0} = $p{$i,1};
  $p{$j,1} = $p{$i,3};
  $p{$j,2} = $p{$i,2};
  $p{$j,3} = $p{$i,0};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+264;
  $i = $k+216;
  $p{$j,0} = $p{$i,1};
  $p{$j,1} = $p{$i,2};
  $p{$j,2} = $p{$i,0};
  $p{$j,3} = $p{$i,3};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+272;
  $i = $k+216;
  $p{$j,0} = $p{$i,0};
  $p{$j,1} = $p{$i,3};
  $p{$j,2} = $p{$i,1};
  $p{$j,3} = $p{$i,2};
}

#  3021  2130  0231  3102
for($k = 0; $k < 8; $k ++){
  $j = $k+280;
  $i = $k+216;
  $p{$j,0} = $p{$i,3};
  $p{$j,1} = $p{$i,0};
  $p{$j,2} = $p{$i,2};
  $p{$j,3} = $p{$i,1};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+288;
  $i = $k+216;
  $p{$j,0} = $p{$i,2};
  $p{$j,1} = $p{$i,1};
  $p{$j,2} = $p{$i,3};
  $p{$j,3} = $p{$i,0};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+296;
  $i = $k+216;
  $p{$j,0} = $p{$i,0};
  $p{$j,1} = $p{$i,2};
  $p{$j,2} = $p{$i,3};
  $p{$j,3} = $p{$i,1};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+304;
  $i = $k+216;
  $p{$j,0} = $p{$i,3};
  $p{$j,1} = $p{$i,1};
  $p{$j,2} = $p{$i,0};
  $p{$j,3} = $p{$i,2};
}

# even perm (+-r5,+-ti,+-t,0):96 --> 408
$i = 312; $p{$i,0}= $r5; $p{$i,1}= $ti; $p{$i,2}= $t; $p{$i,3}=0;
$i = 313; $p{$i,0}=-$r5; $p{$i,1}= $ti; $p{$i,2}= $t; $p{$i,3}=0;
$i = 314; $p{$i,0}= $r5; $p{$i,1}=-$ti; $p{$i,2}= $t; $p{$i,3}=0;
$i = 315; $p{$i,0}=-$r5; $p{$i,1}=-$ti; $p{$i,2}= $t; $p{$i,3}=0;
$i = 316; $p{$i,0}= $r5; $p{$i,1}= $ti; $p{$i,2}=-$t; $p{$i,3}=0;
$i = 317; $p{$i,0}=-$r5; $p{$i,1}= $ti; $p{$i,2}=-$t; $p{$i,3}=0;
$i = 318; $p{$i,0}= $r5; $p{$i,1}=-$ti; $p{$i,2}=-$t; $p{$i,3}=0;
$i = 319; $p{$i,0}=-$r5; $p{$i,1}=-$ti; $p{$i,2}=-$t; $p{$i,3}=0;

#---------------------------
#  [0123]  2301  1032  3210
#  2013  1320  1203  0312
#  3021  2130  0231  3102
#--------------------------
for($k = 0; $k < 8; $k ++){
  $j = $k+320;
  $i = $k+312;
  $p{$j,2} = $p{$i,0};
  $p{$j,3} = $p{$i,1};
  $p{$j,0} = $p{$i,2};
  $p{$j,1} = $p{$i,3};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+328;
  $i = $k+312;
  $p{$j,1} = $p{$i,0};
  $p{$j,0} = $p{$i,1};
  $p{$j,3} = $p{$i,2};
  $p{$j,2} = $p{$i,3};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+336;
  $i = $k+312;
  $p{$j,0} = $p{$i,3};
  $p{$j,1} = $p{$i,2};
  $p{$j,2} = $p{$i,1};
  $p{$j,3} = $p{$i,0};
}

#  2013  1320  1203  0312
for($k = 0; $k < 8; $k ++){
  $j = $k+344;
  $i = $k+312;
  $p{$j,2} = $p{$i,0};
  $p{$j,0} = $p{$i,1};
  $p{$j,1} = $p{$i,2};
  $p{$j,3} = $p{$i,3};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+352;
  $i = $k+312;
  $p{$j,1} = $p{$i,0};
  $p{$j,3} = $p{$i,1};
  $p{$j,2} = $p{$i,2};
  $p{$j,0} = $p{$i,3};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+360;
  $i = $k+312;
  $p{$j,1} = $p{$i,0};
  $p{$j,2} = $p{$i,1};
  $p{$j,0} = $p{$i,2};
  $p{$j,3} = $p{$i,3};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+368;
  $i = $k+312;
  $p{$j,0} = $p{$i,0};
  $p{$j,3} = $p{$i,1};
  $p{$j,1} = $p{$i,2};
  $p{$j,2} = $p{$i,3};
}

#  3021  2130  0231  3102
for($k = 0; $k < 8; $k ++){
  $j = $k+376;
  $i = $k+312;
  $p{$j,3} = $p{$i,0};
  $p{$j,0} = $p{$i,1};
  $p{$j,2} = $p{$i,2};
  $p{$j,1} = $p{$i,3};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+384;
  $i = $k+312;
  $p{$j,2} = $p{$i,0};
  $p{$j,1} = $p{$i,1};
  $p{$j,3} = $p{$i,2};
  $p{$j,0} = $p{$i,3};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+392;
  $i = $k+312;
  $p{$j,0} = $p{$i,0};
  $p{$j,2} = $p{$i,1};
  $p{$j,3} = $p{$i,2};
  $p{$j,1} = $p{$i,3};
}

for($k = 0; $k < 8; $k ++){
  $j = $k+400;
  $i = $k+312;
  $p{$j,3} = $p{$i,0};
  $p{$j,1} = $p{$i,1};
  $p{$j,0} = $p{$i,2};
  $p{$j,2} = $p{$i,3};
}

# even perm (+-2,+-1,+-t,+-ti):192 --> 600
$i = 408; $p{$i,0}= 2; $p{$i,1}= 1; $p{$i,2}= $t; $p{$i,3}= $ti;
$i = 409; $p{$i,0}=-2; $p{$i,1}= 1; $p{$i,2}= $t; $p{$i,3}= $ti;
$i = 410; $p{$i,0}= 2; $p{$i,1}=-1; $p{$i,2}= $t; $p{$i,3}= $ti;
$i = 411; $p{$i,0}=-2; $p{$i,1}=-1; $p{$i,2}= $t; $p{$i,3}= $ti;
$i = 412; $p{$i,0}= 2; $p{$i,1}= 1; $p{$i,2}=-$t; $p{$i,3}= $ti;
$i = 413; $p{$i,0}=-2; $p{$i,1}= 1; $p{$i,2}=-$t; $p{$i,3}= $ti;
$i = 414; $p{$i,0}= 2; $p{$i,1}=-1; $p{$i,2}=-$t; $p{$i,3}= $ti;
$i = 415; $p{$i,0}=-2; $p{$i,1}=-1; $p{$i,2}=-$t; $p{$i,3}= $ti;

for($k = 0; $k < 8; $k++){
  $i = $k+416;
  $j = $k+408;
  $p{$i,0} = -$p{$j,0};
  $p{$i,1} = -$p{$j,1};
  $p{$i,2} = -$p{$j,2};
  $p{$i,3} = -$p{$j,3};
}

# evenly permutation (12)
# [0123]  2301  1032  3210
for($k = 0; $k < 16; $k ++){
  $i = $k+424;
  $j = $k+408;
  $p{$i,2} = $p{$j,0};
  $p{$i,3} = $p{$j,1};
  $p{$i,0} = $p{$j,2};
  $p{$i,1} = $p{$j,3};
}

for($k = 0; $k < 16; $k ++){
  $i = $k+440;
  $j = $k+408;
  $p{$i,1} = $p{$j,0};
  $p{$i,0} = $p{$j,1};
  $p{$i,3} = $p{$j,2};
  $p{$i,2} = $p{$j,3};
}

for($k = 0; $k < 16; $k ++){
  $i = $k+456;
  $j = $k+408;
  $p{$i,0} = $p{$j,3};
  $p{$i,1} = $p{$j,2};
  $p{$i,2} = $p{$j,1};
  $p{$i,3} = $p{$j,0};
}

#  2013  1320  1203  0312
for($k = 0; $k < 16; $k ++){
  $i = $k+472;
  $j = $k+408;
  $p{$i,2} = $p{$j,0};
  $p{$i,0} = $p{$j,1};
  $p{$i,1} = $p{$j,2};
  $p{$i,3} = $p{$j,3};
}

for($k = 0; $k < 16; $k ++){
  $i = $k+488;
  $j = $k+408;
  $p{$i,1} = $p{$j,0};
  $p{$i,3} = $p{$j,1};
  $p{$i,2} = $p{$j,2};
  $p{$i,0} = $p{$j,3};
}

for($k = 0; $k < 16; $k ++){
  $i = $k+504;
  $j = $k+408;
  $p{$i,1} = $p{$j,0};
  $p{$i,2} = $p{$j,1};
  $p{$i,0} = $p{$j,2};
  $p{$i,3} = $p{$j,3};
}

for($k = 0; $k < 16; $k ++){
  $i = $k+520;
  $j = $k+408;
  $p{$i,0} = $p{$j,0};
  $p{$i,3} = $p{$j,1};
  $p{$i,1} = $p{$j,2};
  $p{$i,2} = $p{$j,3};
}

#  3021  2130  0231  3102
for($k = 0; $k < 16; $k ++){
  $i = $k+536;
  $j = $k+408;
  $p{$i,3} = $p{$j,0};
  $p{$i,0} = $p{$j,1};
  $p{$i,2} = $p{$j,2};
  $p{$i,1} = $p{$j,3};
}

for($k = 0; $k < 16; $k ++){
  $i = $k+552;
  $j = $k+408;
  $p{$i,2} = $p{$j,0};
  $p{$i,1} = $p{$j,1};
  $p{$i,3} = $p{$j,2};
  $p{$i,0} = $p{$j,3};
}

for($k = 0; $k < 16; $k ++){
  $i = $k+568;
  $j = $k+408;
  $p{$i,0} = $p{$j,0};
  $p{$i,2} = $p{$j,1};
  $p{$i,3} = $p{$j,2};
  $p{$i,1} = $p{$j,3};
}

for($k = 0; $k < 16; $k ++){
  $i = $k+584;
  $j = $k+408;
  $p{$i,3} = $p{$j,0};
  $p{$i,1} = $p{$j,1};
  $p{$i,0} = $p{$j,2};
  $p{$i,2} = $p{$j,3};
}

# dd = 2(2-tau)
# min d2 = 4(2-tau)^2=4(5-3*tau)
$d2min = 4*sq(2-$t);

#print "d2min=",$d2min,"\n";

#---------------------------------------
# 120-cell{5,3,3} vertices 600
# permutation of 
#  (+-2,+-2,0,0)         : 4C2*4= 24
#  (+-r5,+-1,+-1,+-1)    :  4*16= 64
#  (+-t,+-t,+-t,+-ti^2)  :  4*16= 64
#  (+-t^2,+-ti,+-ti,+-ti):  4*16= 64
# even permutation of
#  (+-t^2,+-ti^2,+-1,0)  :  12*8= 96
#  (+-r5,+-ti,+-t,0)     :  12*8= 96
#  (+-2,+-1,+-t,+-ti)    : 12*16=192
#---------------------------------------
for($i=0; $i < 24; $i++){
  $v{$i} = 1;
}

for($i=0; $i < 64; $i++){
  $j = $i+24;
  $v{$j} = 2;
}

for($i=0; $i < 64; $i++){
  $j = $i+88;
  $v{$j} = 3;
}

for($i=0; $i < 64; $i++){
  $j = $i+152;
  $v{$j} = 4;
}

for($i=0; $i < 96; $i++){
  $j = $i+216;
  $v{$j} = 5;
}

for($i=0; $i < 96; $i++){
  $j = $i+312;
  $v{$j} = 6;
}

for($i=0; $i < 192; $i++){
  $j = $i+408;
  $v{$j} = 7;
}

for($i = 0; $i < 600; $i++){
  $mi = tt($p{$i,3},$t);
  $mp[0] = $p{$i,0}*$mi;
  $mp[1] = $p{$i,1}*$mi;
  $mp[2] = $p{$i,2}*$mi;

  print "// p[$i]=($p{$i,0},$p{$i,1},$p{$i,2},$p{$i,3})\n";
  print "  object {\n";
  print "    sphere {\n";
  print "      <$mp[0], $mp[1], $mp[2]> RADIUS_V\n";
  print "      texture { Texture_V$v{$i} }\n";
  print "    }\n";
  print "  }\n";
  print "\n";
}

$k = 0;
for($i = 0; $i < 600; $i++){
  for($j = $i+1; $j < 600; $j++){
    $d = d2($p{$i,0},$p{$i,1},$p{$i,2},$p{$i,3},$p{$j,0},$p{$j,1},$p{$j,2},$p{$j,3});
#    if($qq{$d} eq ''){
#       $qq{$d} = 1;
#    } else {
#       $qq{$d}++;
#    }
    if(abs($d - $d2min)< 0.0001){
      $mi = tt($p{$i,3},$t);
      $mp[0] = $p{$i,0}*$mi;
      $mp[1] = $p{$i,1}*$mi;
      $mp[2] = $p{$i,2}*$mi;
      $mj = tt($p{$j,3},$t);
      $mq[0] = $p{$j,0}*$mj;
      $mq[1] = $p{$j,1}*$mj;
      $mq[2] = $p{$j,2}*$mj;

      print "// $k:edge(p[$i],p[$j])\n";
      print "  object {\n";
      print "    cylinder {\n";
      print "       <$mp[0], $mp[1], $mp[2]>, <$mq[0], $mq[1], $mq[2]>, RADIUS_E\n";
      print "       texture { Texture_E }\n";
      print "    }\n";
      print "  }\n";
      print "\n";

#      print "p[$i]=($p{$i,0},$p{$i,1},$p{$i,2},$p{$i,3})\n";
#      print "p[$j]=($p{$j,0},$p{$j,1},$p{$j,2},$p{$j,3})\n";
#      print "$k:(p[$i],p[$j])",$d,"\n";
      $k++;
    }
  }
}

#while(($d,$n)= each %qq){
#  print "($d,$n)\n";
#}

print "\n";

