Koca -                Polyhedra Obtained From Coxeter    Groups   and Quaternions

Define combined sign and (cyclic) position Permutation functions

(* Functions to generate positional and ± sign permutations of lists *)
EvenPermutationQ@p_:=Signature@p==-1;
OddPermutationQ@p_:=Signature@p==1;

pm@n_:=Flatten[Outer[List,Sequence@@Table[{-1,1},{n}]],n-1];
pm2@n_:=pm@n/2;

EvenPermutations@p_List:=Module[{(**)i,j(**)},
i=Range@Length@p;
j=Permutations@i;
(j/.Inner[Rule,i,p,List])[[Flatten@Position[j,_?EvenPermutationQ,1,Heads->False]]]];
OddPermutations@p_List:=Module[{(**)i,j(**)},
i=Range@Length@p;
j=Permutations@i;
(j/.Inner[Rule,i,p,List])[[Flatten@Position[j,_?OddPermutationQ,1,Heads->False]]]];

Eperms@in_List:=EvenPermutations[Inner[Times,in,Array[1&,Length@in],List]];
Operms@in_List:=  OddPermutations[Inner[Times,in,Array[1&,Length@in],List]];

(* Quaternion permutations in 3 or 4D 
Code in 14 types of permutations:
"None",                       no permutation of position (just ± sign permutations on each position),
  "All",                        full set of ± sign and positional permutations,
  "Rotate",                    RightRotations of {(Subscript[ℯ, 1]),(Subscript[ℯ, 2]),(Subscript[ℯ, 3])} with ± permutations on each position (cyclic with sign),
  "NoSign",                    no sign permutations, just RightRotation of positions            (cyclic only),
  "NoSignEpos" & "NoSignOpos", no sign permutations,  Even (or Odd) positional permutations,
  "Epos"       & "Opos",       full set of ± sign and Even (or Odd) positional permutations,
  "Esign"      & "Osign",      ± sign Permutation by count of Even (or Odd) + signs,
  "EsignEpos"   & "EsignOpos" & "OsignEPos"   & "OsignOPos" 
                             ± sign Permutation by count of Even (or Odd) + signs and Even (or Odd) position permutations *)
permRotate@in_List:=Module[{out=in},
Join[{out},(out=RotateRight@out)&/@Range[Length@in-1]]];

(* Permute in_List with a given permType_String and use select_List to pull out selected indices *)
perms[in_List,select_List:{},permType_String:"All"]:=Module[{inLength,noSelect, signPerms,permList,outList},
inLength=Length@in;
(* set noSelect if the permType needs all ± permutations *)
noSelect=permType=="Epos"||permType=="Opos"||permType=="Rotate"||permType=="All"||permType=="None";
(* If the permType is "NoSign", return Array of 1s,
   If the permType doesn't require selecting Even or Odd sign counts, send all signPerms, 
       otherwise do the Select *)
signPerms=If[StringContainsQ[permType,"NoSign"],Array[1&,inLength],
If[noSelect,pm@inLength,
Select[pm@inLength,If[StringContainsQ[permType,"Osign"],OddQ,EvenQ]@Count[Sign@#,1]&]]];
(* Do the position perms *)
permList=Which[
permType=="None",List,
permType=="All" ||permType=="Esign"||permType=="Osign",Permutations,
permType=="Rotate"||permType=="NoSign",permRotate,
(* Eperms and Operms processes all positional permutations of Even or Odd Signature (+1,-1) *)
StringContainsQ[permType,"Epos"],Eperms,
StringContainsQ[permType,"Opos"],Operms]@in;
(* Apply the sign perms and delete duplicates, not using Union due to it sorting, which may not be desired *)
outList=DeleteDuplicates@FullSimplify@Flatten[Table[# permList[[i]]&/@signPerms,{i,Length@permList}],1];
(* Apply the select list if needed *)
outList[[If[select=={},Range@Length@outList,select]]]];

These are 3 functions involved in resolving the orbits of a given group (e.g. A3, B3, H3, A4, C4, D4, F4, H4)

(* Using perms (above) to generate solids *)
oPerms[in_List,select_List:{},permType_String:"Rotate"]:=octonion/@Union[Join[{0},#,{0,0,0,0}]&/@perms[in,select,permType]];
oCalc[in_List,select_List:{},permType_String:"Rotate"]:=oct2List[#][[2;;4]]&/@oPerms[in,select,permType];
oShow[in_List,select_List:{},permType_String:"Rotate"]:=hulls3D[oCalc[in,select,permType]]//MatrixForm;

(* Resolving the {a1,a2,a3} using Weyl orbit weights *)
Clear[aa,a1,a2,a3,a4,aRule];
aa:={a1,a2,a3,a4};

aRule@orbit_List:=Inner[Rule,aa,PadRight[orbit,4],List];
aRule@{0,0,1}

(* Set up W(in) with
 α1,α2,α3,α4,
  the r1, r2,r3,r4 sequences, 
  the Cartan Matrix cmH4
 and Λ1[{α,β,γ,ϱ}[a1,a2,a3,a4]] which drives xxOct[x1,x2,x3,x4] *)
doW[in_List|in_String]:=If[StringQ@in,
ToExpression@in;
If[StringTake[in,-1]=="4",{α,β,γ,ϱ},{α,β,γ}],in];

(* The main Weyl Orbit geometry calculator -
Taking as input a function f=oCalc or oShow to generate permutations of a Coxeter-Dynkin orbit={1,0,0} applied to in={α,β,γ}  *)
Clear@Λ;
(*  Λ defaults to the irregular A3 Icosahedron *)
Λ[f_,group_(*)String|group_List**):"A3",orbit_List:{1,1,1},permType_String:"Rotate"]:=f[doW@group/.aRule@orbit,permType];

W(A3)

(* Set up W(A3) *)

A3:=((* Set up for doW(in) with
 α1,α2,α3,α4 *)
α1=(1/(Sqrt[2]))((Subscript[ℯ, 1])+(Subscript[ℯ, 2]));
α2=(1/(Sqrt[2]))((Subscript[ℯ, 3])-(Subscript[ℯ, 2]));
α3=(1/(Sqrt[2]))((Subscript[ℯ, 2])-(Subscript[ℯ, 1]));
(* r1, r2,r3,r4 sequences *)
aStr=""r1@r3@r2"";
bStr="r3@r2";
cStr="r2@r1@r2";
(* the Cartan Matrix *)
cm=cmA3={{2,-1,0},{-1,2,-1},{0,-1,2}};
(* {α,β,γ,ϱ} which is used in Λ1[[a1,a2,a3,a4] which drives xxOct[x1,x2,x3,x4] *)
α=(a1-a3)/2;
β=(a1+a3)/2;
γ=(a1+2a2+a3)/2;
ϱ=0);

doW@"A3"

(* r Cycles *)
rCycle[aStr,3]

rCycle[bStr,3]

rCycle[bStr,3]

(* Cartan  *)
cm//MatrixForm
Inverse@cm//MatrixForm

(* {α,β,γ,ϱ} which is used in Λ1[[a1,a2,a3,a4] which drives xxOct[x1,x2,x3,x4]
for 3D *)
{{#},{α,β,γ,ϱ},{α,β,γ,ϱ}/.aRule@#}&/@Flatten[Permutations/@{{1,0,0},{1,1,0},{1,1,1}},1]//MatrixForm

xxOct
FullSimplify@%/.aRule@{0,0,1}
FullSimplify@%/.φ->(1/2) (-1+(Sqrt[5]))
N@%

Λ(100) & Λ(001) Tetrahedrons (Self Dual)

{α,β,γ}/.aRule@{1,0,0}
αβγ100UnitNorm=1/Norm@%
N@%

(* Using the {α,β,γ} or other list on {1,0,0} *)
Λ[oPerms,{α,β,γ},{1,0,0},"Osign"]
Λ[oCalc,  {α,β,γ},{1,0,0},"Osign"]
Λ[oShow,  {α,β,γ},{1,0,0},"Osign"]

{α,β,γ}/.aRule@{0,0,1}
αβγ001UnitNorm=1/Norm@%
N@%

(* Using the group  name on {0,0,1} *)
Λ[oPerms,"A3",{0,0,1},"Osign"]
Λ[oCalc,"A3",{0,0,1},"Osign"]
Λ[oShow,"A3",{0,0,1},"Osign"]

Λ(010) Octahedron (see Platonic Dual W(B3) Λ(001) Cube below)

(* Platonic Dual Cube *)
hulls3D@Join[
(* Λ(100) Tetrahedron from above *)
Λ[oCalc,"A3",{1,0,0},"Osign"],
(* Λ(001) Tetrahedron from above  *)
Λ[oCalc,"A3",{0,0,1},"Osign"]]

Λ(110) &  Λ(011) Truncated Tetrahedrons (with Catalan Dual Triakis Tetrahedron)

(* Λ(110)& Λ(011) Truncated Tetrahedrons *)

hulls3D@Join[
Λ[oCalc,"A3",{1,1,0},"Osign"],
Λ[oCalc,"A3",{0,1,1},"Osign"]]

(* Triakis Tetrahedron *)

hulls3D@Join[
(* Λ(100) Tetrahedron from above *)
Λ[oCalc,"A3",{1,0,0},"Osign"],
(* Scaled Λ(001) Tetrahedron from above  *)
Λ[oCalc,"A3",{0,0,(5/3)},"Osign"]]

Λ(101) Cuboctahedron 3D T’ (with Catalan Dual 3D T Rhombic Dodecahedron=Octahedron+Cube) &  
Λ(111) Truncated Octahedron (with Catalan Dual Tetrakis Hexahedron)

(* Λ(101) Cuboctahedron *)

Λ[oCalc,"A3",{1,0,1},"Osign"]
Λ[oShow,"A3",{1,0,1},"Osign"]

(* Catalan Dual 3D T Rhombic Dodecahedron=Octahedron+Cube) *)

(* Catalan Dual of Λ(101) Cuboctahedron (Rhombic Dodecahedron=Octahedron+Cube) *)

hulls3D@Join[
Λ[oCalc,"A3",{0,1,0},"Osign"],
Λ[oCalc,"A3",{0,0,1}]]

(* Λ(111) Truncated Octahedron *)

(* Catalan Dual of Λ(111) Truncated Octahedron (Tetrakis Hexahedron) *)

hulls3D@Join[
(* Λ(010) Octahedron *)
Λ[oCalc,"A3",{0,1,0},"Osign"],
(* Unit Circumradius Scaled Cube *)
(* Λ(100) Tetrahedron from above *)
Λ[oCalc,"A3",{2,0,0}/(Sqrt[3]),"Osign"],
(* Λ(001) Tetrahedron from above  *)
Λ[oCalc,"A3",{0,0,2}/(Sqrt[3]),"Osign"]]

W(B3)

(* Set up W(B3) *)

B3:=((* Set up for doW(in) with
 α1,α2,α3,α4 *)
α1=(1/(Sqrt[2]))((Subscript[ℯ, 1])-(Subscript[ℯ, 2]));
α2=(1/(Sqrt[2]))((Subscript[ℯ, 2])-(Subscript[ℯ, 3]));
α3=(Subscript[ℯ, 3]);
(* r1, r2,r3,r4 sequences *)
aStr="r2@r3";
bStr="r1@r2";
(* the Cartan Matrix *)
cm=cmB3={{2,-1,0},{-1,2,-(Sqrt[2])},{0,-(Sqrt[2]),2}};
(* {α,β,γ,ϱ} which is used in Λ1[[a1,a2,a3,a4] which drives xxOct[x1,x2,x3,x4] *)
α=a1+a2+a3/(Sqrt[2]);
β=a2+a3/(Sqrt[2]);
γ=a3/(Sqrt[2]);ϱ=0;);

doW@"B3"

(* r Cycles *)
rCycle[aStr,4]
rCycle[bStr,3]
rCycle[aStr<>"@"<>bStr,2]
(*)(a^4)=(b^3)=(((ab))^2)=[1,1] **)
%%%==%%==%

(* Cartan  *)
cm//MatrixForm
Inverse@cm//MatrixForm

(* {α,β,γ,ϱ} which is used in Λ1[[a1,a2,a3,a4] which drives xxOct[x1,x2,x3,x4]
for 3D *)
{{#},{α,β,γ,ϱ},{α,β,γ,ϱ}/.aRule@#}&/@Flatten[Permutations/@{{1,0,0},{1,1,0},{1,1,1}},1]//MatrixForm

xxOct
FullSimplify@%/.aRule@{0,0,1}
FullSimplify@%/.φ->(1/2) (-1+(Sqrt[5]))
N@%

Λ(100) Octahedron (same as in W(A3) Λ(010))  & Λ(001) Cube (Platonic Solid Duals of each other)

Λ[oShow,"B3",{1,0,0}]

Λ[oShow,"B3",{0,0,1}]

Λ(010) Cuboctahedron (same as above in W(A3) Λ(101) with its Catalan Dual)

(* Λ(010) Cuboctahedron *)

Λ[oShow,"B3",{0,1,0},"Osign"]

(* Catalan Dual of Λ(010) Cuboctahedron (Rhombic Dodecahedron=Octahedron+Cube) *)

hulls3D@Join[
(* Λ(010) Octahedron from above *)
Λ[oCalc,"B3",{1,0,0}],
(* Unit Scaled Λ(001) Cube from above *)
Λ[oCalc,"B3",{0,0,1}/(Sqrt[2])]]

Λ(110) Truncated Octahedron (same as in W(A3) Λ(111) (with Catalan Dual Tetrakis Hexahedron)) &  
Λ(011) Truncated Cube & Catalan Dual Triakis Octahedron

(* Λ(110) Truncated Octahedron  *)

Λ[oShow,"B3",{1,1,0},"All"]

(* Λ(110) Icosahedron *)

Λ[oShow,"B3",{1,1,0},"EsignEpos"]

(* Catalan Dual of Λ(111) Truncated Octahedron (Tetrakis Hexahedron) *)

hulls3D@Join[
(* Scaled Λ(010) Octahedron *)
Λ[oCalc,"B3",{1,0,0},"Osign"],
(* Unit Scaled Cube *)
Λ[oCalc,"B3",{0,0,(Sqrt[(2/3)])}]]

(* Λ(011) Truncated Cube *)

Λ[oShow,"B3",{0,1,1}]

(* Catalan Dual of Λ(011) Truncated Cube (Triakis Octahedron) *)

hulls3D@Join[
(* Λ(100) Octahedron from above*)
Λ[oCalc,"B3",{1,0,0}],
(* Scaled Λ(001) Cube from above*)
((Sqrt[2])-1)(Sqrt[2])Λ[oCalc,"B3",{0,0,1}]]

Λ(101) Small Rhombicuboctahedron (with Catalan Dual Deltoidal Icositetrahedron & 
Λ(111) Great Rhombicuboctahedron (aka Truncated cuboctahedron) (with Catalan Dual Disdyakis Dodecahedron

(* Catalan Dual of Λ(101) Small Rhombicuboctahedron (Deltoidal Icositetrahedron) *)

hulls3D@Join[
(* Λ(100) Octahedron from above *)
Λ[oCalc,"B3",{1,0,0},"Osign"],
(* Scaled Λ(010) Cuboctahedron from above *)
Λ[oCalc,"B3",{0,1,0}/(Sqrt[2]),"Osign"],
(* Scaled Λ(001) Cube from above *)
Λ[oCalc,"B3",{0,0,((2+2(Sqrt[8]))/7)}/(Sqrt[2])]]

(* Λ(111) Great Rhombicuboctahedron grcoh *)

Λ[oShow,"B3",{1,1,1}]

(* Catalan Dual of Λ(111) Truncated Octahedron (Disdyakis Dodecahedron) *)

hulls3D@Join[
(* Scaled Λ(100) Octahedron from above *)
Λ[oCalc,"B3",{1,0,0}],
(* Scaled Λ(010) Cuboctahedron Scaled Λ(001) Cube from above *)
Λ[oCalc,"B3",{0,5-(1/(Sqrt[2])),0}/7,"Osign"],
(* Scaled Λ(001) Cube from above *)
Λ[oCalc,"B3",{0,0,(Sqrt[2])-(2/3)}]]

W(H3)

(* Set up W(H3) *)

H3:=((* Set up for doW(in) with
 α1,α2,α3,α4 *)
α1=(Subscript[ℯ, 1]);
α2=(1/2)(τ (Subscript[ℯ, 1]) +(Subscript[ℯ, 2])+σ (Subscript[ℯ, 3]));
α3=(Subscript[ℯ, 2]);
(* r1, r2,r3,r4 sequences *)
aStr="r1@r2@r3";
bStr="r2@r3";
cStr="r2@r3@r2";
(* the Cartan Matrix *)
cm=cmH3={{2,-τ,0},{-τ,2,-1},{0,-1,2}};
(* {α,β,γ,ϱ} which is used in Λ1[[a1,a2,a3,a4] which drives xxOct[x1,x2,x3,x4] *)
α=-a1/2;
β=-a3/2;
γ=-τ(τ a1+2 a2+a3)/2;ϱ=0;);

doW@"H3"

(* r Cycles *)
rCycle[aStr,10]
rCycle[bStr,3]
rCycle[cStr,4]
%%%==%%==%

(* Cartan  *)
cm//MatrixForm
Inverse@cm//MatrixForm

(* {α,β,γ,ϱ} which is used in Λ1[[a1,a2,a3,a4] which drives xxOct[x1,x2,x3,x4]
for 3D *)
{{#},{α,β,γ,ϱ},{α,β,γ,ϱ}/.aRule@#}&/@Flatten[Permutations/@{{1,0,0},{1,1,0},{1,1,1}},1]//MatrixForm

xxOct
FullSimplify@%/.aRule@{0,0,1}
FullSimplify@%/.φ->(1/2) (-1+(Sqrt[5]))
N@%

Λ(100) Dodecahedron & Λ(001) Icosahedron (Platonic Solid Duals of each other)

(* Λ(100) Dodecahedron *)

hulls3D@Join[
Λ[oCalc,"H3",{σ,0,0}],
Λ[oCalc,"H3",{1,-1,1},"None"]]

(* Λ(001) Icosahedron *)

Λ[oShow,"H3",{0,0,1}]

Λ(010) Icosidodecahedron (with Catalan Dual Rhombic Triacontahedron)

(* Λ(010) Icosidodecahedron *)

hulls3D@Join[
(* Unit Octahedron *)
Λ[oCalc,"H3",{0,σ,0}],
Λ[oCalc,"H3",{-1,τ,σ}]]

(* Catalan Dual of Λ(010) Icosidodecahedron (Rhombic Triacontahedron) *)

(* Example: rotation elements and dihedral angle from the Norm'd quaternion scalar product *)
q1=octonion@{1,τ,σ,0,0,0,0,0}/2
q1p=prq[q1,(Subscript[ℯ, 1]),(SuperStar[q1])]
FullSimplify[%/.φ->(1/2) (-1+(Sqrt[5]))]
FullSimplify[N@%]

q2=octonion@{0,τ,-1,-σ,0,0,0,0}/2

FullSimplify[q1⊕q2/.φ->(1/2) (-1+(Sqrt[5]))]
N@ArcCos[%]/°
180-%
DMSList@%

hulls3D@Join[
(* Dodecahedron from Λ(100) & Λ(001) above *)
Λ[oCalc,"H3",{σ,0,0}],
Λ[oCalc,"H3",{1,-1,1},"None"],
(* Icosahedron from Λ(100) & Λ(001) above *)
Λ[oCalc,"H3",{0,0,1}]]

Λ(110) Truncated Dodecahedron (with Catalan Dual Triakis Icosahedron) &  
Λ(011) Truncated  Icosahedron   (with Catalan Dual Pentakis Dodecahedron)

(* Λ(σ(110) Truncated Dodecahedron *)

hulls3D@ Join[
Λ[oCalc,"H3",{σ,σ,0},"OsignOpos"],
Λ[oCalc,{τ,σ,2τ}/2],
Λ[oCalc,{τ,(τ^2),2}/2]]

(* Catalan Dual of Λ((110) Truncated Dodecahedron(Triakis Icosahedron) *)

hulls3D@Join[
(* From the Rhombic Triacontahedron **)
(* Unit Scaled Icosahedron from Λ(100) & Λ(001) above **)
(1/((1/2) (Sqrt[1+(1/(φ^2))])))Λ[oCalc,"H3",{0,0,1}],(**)
(* Scaled Dodecahedron from Λ(100) & Λ(001) above **)
(**)(((1/2)(Sqrt[(3/2)(3+(Sqrt[5]))]))/((Sqrt[(13/8)+(19/(8(Sqrt[5])))])((Sqrt[3])/2)))(**)Λ[oCalc,"H3",{σ,0,0}],
(**)(((1/2)(Sqrt[(3/2)(3+(Sqrt[5]))]))/((Sqrt[(13/8)+(19/(8(Sqrt[5])))])((Sqrt[3])/2)))(**)Λ[oCalc,"H3",{1,-1,1},"None"]]

(* Λ(011) Truncated Icosahedron = Outer 2 hulls of H4 (12+30=32) *)

hulls3D@Join[
 Λ[oCalc,"H3",{0,2,2},"OsignOpos"],
Λ[oCalc,{2 τ,1,1+(τ^2)}],
Λ[oCalc,{ 2,(τ^3),τ}]]

(* Catalan Dual of Λ(011) Truncated Icosahedron = Outer 2 hulls of H4 (12+20=32) (Pentakis Dodecahedron) *)

hulls3D@Join[
oCalc[((3τ)/(σ+4)){0,1,σ}]/(Sqrt[3]),
oCalc[{0,σ,τ}]/(Sqrt[3]),
oCalc[{1,1,1}]/(Sqrt[3])]

Λ(101) Small Rhombicosidodecahedron (with Catalan Dual Deltoidal Hexacontahedron) &  
Λ(111) Great Rhombicosidodecahedron (120 regular & proper aka. Truncated icosidodecahedron) (with Catalan Dual Disdyakis Triacontahedron)

(* Λ(101) Small Rhombicosidodecahedron *)

hulls3D@Join[
Λ[oCalc,σ{1,1,(τ^3)}/2],
Λ[oCalc,{ τ-σ,τ,0}/2],
Λ[oCalc,{2,1,τ}/2]]

(* Catalan Dual of Λ((101) Small Rhombicosidodecahedron (Deltoidal Hexacontahedron) *)

hulls3D@Join[
(* Rhombic Triacontahedron **)
(* Unit Scaled Icosahedron from Λ(001) above **)
(1/((1/2) (Sqrt[1+(1/(φ^2))])))Λ[oCalc,"H3",{0,0,1}],
(* Scaled Dodecahedron from Λ(100) above **)
((Sqrt[(3/4)(5+(11/(Sqrt[5])))])/((Sqrt[((147+65 (Sqrt[5]))/36)])((Sqrt[3])/2)))Λ[oCalc,"H3",{σ,0,0}],
((Sqrt[(3/4)(5+(11/(Sqrt[5])))])/((Sqrt[((147+65 (Sqrt[5]))/36)])((Sqrt[3])/2)))Λ[oCalc,"H3",{1,-1,1},"None"],(**)

(* Scaled Λ(010) Icosidodecahedron (30) from above **)
(* Octahedron **)
((Sqrt[((85+31 (Sqrt[5]))/20)])/(Sqrt[((147+65 (Sqrt[5]))/36)])) Λ[oCalc,"H3",{0,σ,0}],
((Sqrt[((85+31 (Sqrt[5]))/20)])/(Sqrt[((147+65 (Sqrt[5]))/36)]))Λ[oCalc,"H3",{-1,τ,σ}]]

(* Λ(111) Great Rhombicosidodecahedron (120 regular & proper aka. Truncated icosidodecahedron) *)

hulls3D[Join[
Λ[oCalc,{σ,σ,τ+3}],
Λ[oCalc,{3 ,τ,2τ}],
Λ[oCalc,{2 ,τ-σ,τ+2}],
Λ[oCalc,{ 2σ,(τ^3),τ}],
Λ[oCalc,{σ,3τ-1,(τ^2)}]]/2]

(* Catalan Dual of Λ((111) Great Rhombicosidodecahedron (Disdyakis Triacontahedron) *)

hulls3D@Join[
(* 62=12+20+30 *)
(* Rhombic Triacontahedron (32=12+20) **)
(* Unit Scaled Icosahedron from Λ(100) & Λ(001) above **)
(1/((1/2) (Sqrt[1+(1/(φ^2))])))Λ[oCalc,"H3",{0,0,1}],
(* Scaled Dodecahedron from Λ(100) & Λ(001) above **)
oScale(2/(Sqrt[3]))Λ[oCalc,"H3",{σ,0,0}],
oScale(2/(Sqrt[3]))Λ[oCalc,"H3",{1,-1,1},"None"],

(* Scaled Λ(010) Icosidodecahedron (30) from above **)
(* Icosidodecahedron **)
(1/iScaleOct) Λ[oCalc,"H3",{0,σ,0}],
(1/iScaleOct)Λ[oCalc,"H3",{-1,τ,σ}]]