1############################################################################# 2## 3#W eigenv.gd Algebraic Graph Theory package Rhys J. Evans 4## 5## 6#Y Copyright (C) 2020 7## 8## Declaration file for functions involving eigenvalues of graphs. 9## 10 11 12############################################################################# 13## 14#O LeastEigenvalueInterval( <gamma> , <eps> ) 15#O LeastEigenvalueInterval( <parms> , <eps> ) 16## 17## <#GAPDoc Label="LeastEigenvalueInterval"> 18## <ManSection> 19## <Oper Name="LeastEigenvalueInterval" 20## Arg="gamma, eps"/> 21## <Oper Name="LeastEigenvalueInterval" 22## Arg="parms, eps" Label="for SRG parameters"/> 23## <Returns>A list.</Returns> 24## 25## <Description> 26## Given a graph <A>gamma</A> and rational number <A>eps</A>, this function 27## returns an interval containing the least eigenvalue of <A>gamma</A>. 28## <P/> 29## Given feasible strongly regular graph parameters <A>parms</A> and rational 30## number <A>eps</A>, this function returns an interval containing the least 31## eigenvalue of a strongly regular graph with parameters <A>parms</A>. 32## <P/> 33## The interval returned is in the form of a list, <A>[y,z]</A> of rationals 34## <M><A>y</A>\leq <A>z</A></M> with the property that 35## <M><A>z</A>-<A>y</A>\leq <A>eps</A></M>. If the eigenvalue is rational this 36## function will return a list <A>[y,z]</A>, where <M><A>y</A>=<A>z</A></M>. 37## <Example> 38## <![CDATA[ 39##gap> gamma:=EdgeOrbitsGraph(Group((1,2,3,4,5)),[[1,2],[2,1]]);; 40##gap> LeastEigenvalueInterval(gamma,1/10); 41##[ -13/8, -25/16 ] 42##gap> parms:=SRGParameters(gamma); 43##[ 5, 2, 0, 1 ] 44##gap> LeastEigenvalueInterval(parms,1/10); 45##[ -13/8, -25/16 ] 46##gap> LeastEigenvalueInterval(JohnsonGraph(7,3),1/20); 47##[ -3, -3 ] 48## ]]> 49## </Example> 50## </Description> 51## </ManSection> 52## <#/GAPDoc> 53## 54DeclareOperation( "LeastEigenvalueInterval", [IsRecord, IsRat] ); 55DeclareOperation( "LeastEigenvalueInterval", [IsList, IsRat] ); 56 57############################################################################# 58## 59#O SecondEigenvalueInterval( <gamma> , <eps> ) 60#O SecondEigenvalueInterval( <parms> , <eps> ) 61## 62## <#GAPDoc Label="SecondEigenvalueInterval"> 63## <ManSection> 64## <Oper Name="SecondEigenvalueInterval" 65## Arg="gamma, eps"/> 66## <Oper Name="SecondEigenvalueInterval" 67## Arg="parms, eps" Label="for SRG parameters"/> 68## <Returns>A list.</Returns> 69## 70## <Description> 71## Given a regular graph <A>gamma</A> and rational number <A>eps</A>, this 72## function returns an interval containing the second largest eigenvalue 73## of <A>gamma</A>. 74## <P/> 75## Given feasible strongly regular graph parameters <A>parms</A> and 76## rational number <A>eps</A>, this function returns an interval containing 77## the second largest eigenvalue of a strongly regular graph with 78## parameters <A>parms</A>. 79## <P/> 80## The interval returned is in the form of a list, <A>[y,z]</A> of rationals 81## <M><A>y</A>\leq <A>z</A></M> with the property that 82## <M><A>z</A>-<A>y</A>\leq <A>eps</A></M>. If the eigenvalue is rational this 83## function will return a list <A>[y,z]</A>, where 84## <M><A>y</A>=<A>z</A></M>. 85## <Example> 86## <![CDATA[ 87##gap> gamma:=EdgeOrbitsGraph(Group((1,2,3,4,5)),[[1,2],[2,1]]);; 88##gap> SecondEigenvalueInterval(gamma,1/10); 89##[ 9/16, 5/8 ] 90##gap> parms:=SRGParameters(gamma); 91##[ 5, 2, 0, 1 ] 92##gap> SecondEigenvalueInterval(parms,1/10); 93##[ 9/16, 5/8 ] 94##gap> SecondEigenvalueInterval(JohnsonGraph(7,3),1/20); 95##[ 5, 5 ] 96## ]]> 97## </Example> 98## </Description> 99## </ManSection> 100## <#/GAPDoc> 101## 102DeclareOperation( "SecondEigenvalueInterval" , [IsRecord, IsRat]); 103DeclareOperation( "SecondEigenvalueInterval" , [IsList, IsRat] ); 104 105############################################################################# 106## 107#F LeastEigenvalueFromSRGParameters( [ <v>, <k>, <a>, <b> ] ) 108## 109## <#GAPDoc Label="LeastEigenvalueFromSRGParameters"> 110## <ManSection> 111## <Func Name="LeastEigenvalueFromSRGParameters" 112## Arg='[ v, k, a, b ]'/> 113## <Returns>An integer or an element of a cyclotomic field.</Returns> 114## 115## <Description> 116## Given feasible strongly regular graph parameters <A>[v, k, a, b]</A> 117## this function returns the least eigenvalue of a strongly regular graph 118## with parameters <M>(<A>v,k,a,b</A>)</M>. If the eigenvalue is integer, the 119## object returned is an integer. If the eigenvalue is irrational, the object 120## returned lies in a cyclotomic field. 121## <Example> 122## <![CDATA[ 123##gap> LeastEigenvalueFromSRGParameters([5,2,0,1]); 124##E(5)^2+E(5)^3 125##gap> LeastEigenvalueFromSRGParameters([10,3,0,1]); 126##-2 127## ]]> 128## </Example> 129## </Description> 130## </ManSection> 131## <#/GAPDoc> 132## 133DeclareGlobalFunction( "LeastEigenvalueFromSRGParameters" ); 134 135############################################################################# 136## 137#F SecondEigenvalueFromSRGParameters( [ <v>, <k>, <a>, <b> ] ) 138## 139## <#GAPDoc Label="SecondEigenvalueFromSRGParameters"> 140## <ManSection> 141## <Func Name="SecondEigenvalueFromSRGParameters" 142## Arg='[ v, k, a, b ]'/> 143## <Returns>An integer or an element of a cyclotomic field.</Returns> 144## 145## <Description> 146## Given feasible strongly regular graph parameters <A>[v, k, a, b]</A>, 147## this function returns the second largest eigenvalue of a strongly 148## regular graph with parameters <M>(<A>v,k,a,b</A>)</M>. If the eigenvalue is 149## integer, the object returned is an integer. If the eigenvalue is 150## irrational, the object returned lies in a cyclotomic field. 151## <Example> 152## <![CDATA[ 153##gap> SecondEigenvalueFromSRGParameters([5,2,0,1]); 154##E(5)+E(5)^4 155##gap> SecondEigenvalueFromSRGParameters([10,3,0,1]); 156##1 157## ]]> 158## </Example> 159## </Description> 160## </ManSection> 161## <#/GAPDoc> 162## 163DeclareGlobalFunction( "SecondEigenvalueFromSRGParameters" ); 164 165############################################################################# 166## 167#O LeastEigenvalueMultiplicity( [ <v>, <k>, <a>, <b> ] ) 168## 169## <#GAPDoc Label="LeastEigenvalueMultiplicity"> 170## <ManSection> 171## <Oper Name="LeastEigenvalueMultiplicity" 172## Arg='[ v, k, a, b ]'/> 173## <Returns>An integer.</Returns> 174## 175## <Description> 176## Given feasible strongly regular graph parameters <A>[v, k, a, b]</A> 177## this function returns the multiplicity of the least eigenvalue of a 178## strongly regular graph with parameters <M>(<A>v,k,a,b</A>)</M>. 179## <Example> 180## <![CDATA[ 181##gap> LeastEigenvalueMultiplicity([16,9,4,6]); 182##6 183##gap> LeastEigenvalueMultiplicity([25,12,5,6]); 184##12 185## ]]> 186## </Example> 187## </Description> 188## </ManSection> 189## <#/GAPDoc> 190## 191DeclareOperation( "LeastEigenvalueMultiplicity" , [IsList] ); 192 193############################################################################# 194## 195#O SecondEigenvalueMultiplicity( [ <v>, <k>, <a>, <b> ] ) 196## 197## <#GAPDoc Label="SecondEigenvalueMultiplicity"> 198## <ManSection> 199## <Oper Name="SecondEigenvalueMultiplicity" 200## Arg='[ v, k, a, b ]'/> 201## <Returns>An integer.</Returns> 202## 203## <Description> 204## Given feasible strongly regular graph parameters <A>[v, k, a, b]</A> 205## this function returns the multiplicity of the second eigenvalue of a 206## strongly regular graph with parameters <M>(<A>v,k,a,b</A>)</M>. 207## <Example> 208## <![CDATA[ 209##gap> SecondEigenvalueMultiplicity([16,9,4,6]); 210##9 211##gap> SecondEigenvalueMultiplicity([25,12,5,6]); 212##12 213## ]]> 214## </Example> 215## </Description> 216## </ManSection> 217## <#/GAPDoc> 218## 219DeclareOperation( "SecondEigenvalueMultiplicity", [IsList] ); 220 221############################################################################# 222## 223#E 224