Double Cone Graph

Author

Eric W. Weisstein
May 2, 2023

This notebook downloaded from http://mathworld.wolfram.com/notebooks/GraphTheory/DoubleConeGraph.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/DoubleConeGraph.html.

©2023 Wolfram Research, Inc. except for portions noted otherwise

Graphic

RadialEmbedding

GraphicsGrid[Partition[Table[DoubleConeGraph[n,GraphLayout->"RadialEmbedding"],{n,3,8}],3],Dividers->All]

NestedRadialEmbedding

GraphicsGrid[Partition[Table[DoubleConeGraph[n,GraphLayout->"NestedRadialEmbedding"],{n,3,8}],3],Dividers->All]

UnitDistanceEmbedding

GraphicsGrid[Partition[Table[DoubleConeGraph[n,GraphLayout->"UnitDistanceEmbedding"],{n,3,8}],3],Dividers->All]

PlanarEmbedding

GraphicsGrid[Partition[Table[DoubleConeGraph[n,GraphLayout->"PlanarEmbedding"],{n,3,8}],3],Dividers->All]

Barbell embedding

GraphicsGrid[Partition[Table[DoubleConeGraph[n,GraphLayout->"BarbellEmbedding"],{n,3,8}],3],Dividers->All]

Combined

GraphicsGrid[Table[StyleGraphs@DoubleConeGraph[n,GraphLayout->layout],{layout,{"RadialEmbedding","NestedRadialEmbedding","PlanarEmbedding","BarbellEmbedding"}},{n,3,8}],Dividers->All,ImageSize->700]

3DEmbedding

GraphicsRow[Table[DoubleConeGraph[n,GraphLayout->"3DEmbedding"],{n,3,8}]//StyleGraphs,Dividers->All]

3DUnitDistanceEmbedding

GraphicsGrid[Partition[Table[DoubleConeGraph[n,GraphLayout->"3DUnitDistanceEmbedding"],{n,3,5}],3],Dividers->All]

Special cases

TextGrid[Table[{n,r=RecognizeGraph@DoubleConeGraph[n],GraphData[r,"StandardNames"]},{n,3,8}],Dividers->All]

Classes

Intersection@@(GraphData[#,"Classes"]&/@GraphData["DoubleCone"])

GraphClassesThatAreClass["DoubleCone"]

Embeddings

<<MathWorld`Graphs`

{"DoubleCone", 3}

GraphData[{"DoubleCone",3},"StandardName"]

Primary

GraphData[{"DoubleCone",3}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",3},"Graph","All"]//StyleGraphs

GraphData[{"DoubleCone",3},"EmbeddingClasses"]

Inexact

Select[GraphData[{"DoubleCone",3},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",3},"EdgeList"]]

Radial embedding construction

g=DoubleConeGraph[3,GraphLayout->"RadialEmbedding",VertexLabels->Automatic]

RecognizeGraph[g]

Default embedding

GraphPlot@GraphData[{"DoubleCone",3},"Edges"]

v={{-1,0},{0,0},{1,0},{1/2,1/2},{1/2,-1/2},{-1/2,1/2},{-1/2,-1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,7,2,4,3,5,2,6,1,2,3],{6,7},{4,5}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Mean[v[[#]]]&/@{{1,2,3},{3,4,5}}

s=Sqrt[3]/2;
v={{-s,1/2},{-s,-1/2},{0,0},{s,1/2},{s,-1/2},{-(1/(Sqrt[3])),0},{(1/(Sqrt[3])),0}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,6,2],e[5,4,3,5,7,4],e[6,3,7]},VertexCoordinates->v,VertexLabels->Automatic]

List@@@Sort[Sort/@EdgeList[g]]

RecognizeGraph[g]

gs=DoubleConeGraph[3,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","BarbellEmbedding","PlanarEmbedding"}

RecognizeGraph@g

Degenerate

GraphData[{"DoubleCone",3},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",3},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",3},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",3},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"DoubleCone",3},"Planar"]

GraphData[{"DoubleCone",3},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",3},{"RCN","CN"}]

GraphData[{"DoubleCone",3},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"DoubleCone",3}],TimeConstraint->1])//AbsoluteTiming

MinimalCrossingGraph[GraphData[{"DoubleCone",3}]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone",3},"Circulant"]

GraphData[{"DoubleCone",3},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",3},"Halin"]

GraphData[{"DoubleCone",3},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",3},"Rigid"]

GraphData[{"DoubleCone",3},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",3},"Flexible"]

GraphData[{"DoubleCone",3},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",3},"LCF"]

GraphData[{"DoubleCone",3},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",3},"LCFSignature"]

GraphData[{"DoubleCone",3},"LCFNotations"]

GraphData[{"DoubleCone",3},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",3},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",3}],Debug->True]//Timing

GraphData[{"DoubleCone",3},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",3},"VertexList"],GraphData[{"DoubleCone",3},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",3},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",3}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",3},"Matchstick"]

GraphData[{"DoubleCone",3},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",3},"Edges"]]

gs=DoubleConeGraph[3,GraphLayout->#]&/@{"3DUnitDistanceEmbedding","3DEmbedding"}

EdgeLengths/@gs

3D All

GraphData[{"DoubleCone",3},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",3},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",3},"Polyhedral"]

GraphData[{"DoubleCone",3},"Graph",{"3D","Polyhedron"}]

{"DoubleCone", 4}

GraphData[{"DoubleCone",4},"StandardName"]

Primary

GraphData[{"DoubleCone",4}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",4},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",4},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",4},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",4},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

gs=DoubleConeGraph[4,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

v=Reverse/@DeleteDuplicates@FullSimplify@Join[CirclePoints[{0,-1},{1,Pi/2},5],CirclePoints[{0,1},{1,-Pi/2},5]];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[4,1,3,5,4,2,1,5],{2,3},e[1,9,8,6,7,9],e[8,1,7],{1,6}},VertexCoordinates->v,VertexLabels->Automatic]

Degenerate

GraphData[{"DoubleCone",4},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",4},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",4},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",4},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",4}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",4}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&]]

quad

Planar

GraphData[{"DoubleCone",4},"Planar"]

GraphData[{"DoubleCone",4},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",4},{"RCN","CN"}]

GraphData[{"DoubleCone",4},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",4}]]

s=Sqrt[3]/2;
v={{0,0},{-1/2,s},{1/2,s},{-1/2,-s},{1/2,-s},{-1/8,1/2},{1/8,1/2},{-1/8,-1/2},{1/8,-1/2}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[4,5,1,2,3,1,4,8,9,5],e[2,6],e[7,3],e[8,1,7,6,1,9]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone",4},"Circulant"]

GraphData[{"DoubleCone",4},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",4},"Halin"]

GraphData[{"DoubleCone",4},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",4},"Rigid"]

GraphData[{"DoubleCone",4},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",4},"Flexible"]

GraphData[{"DoubleCone",4},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",4},"LCF"]

GraphData[{"DoubleCone",4},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",4},"LCFSignature"]

GraphData[{"DoubleCone",4},"LCFNotations"]

GraphData[{"DoubleCone",4},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",4},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",4}],Debug->True]//Timing

GraphData[{"DoubleCone",4},"Graph","UnitDistance"]//StyleGraphs

Select[%,!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&]

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",4},"VertexList"],GraphData[{"DoubleCone",4},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",4},"Graph",#]&/@{"All","UnitDistance"})

EdgeLengths[]

Select[%,UnitDistanceGraphEmbeddingQ]

<<MathWorld`Graphs`

DoubleConeGraph[4,GraphLayout->"NestedRadialEmbedding"]

<<MathWorld`Graphs`

g=DoubleConeGraph[4,GraphLayout->"RadialEmbedding"]

RecognizeGraph@g

v=Join[CirclePoints[{1,0},8],{{0,0}}];
g=Graph[Range[9],UndirectedEdge@@@Join[Partition[Range[1,7,2],2,1,1],Partition[Range[2,8,2],2,1,1]],VertexCoordinates->v,VertexLabels->Automatic]

EuclideanDistance@@v[[{5,7}]]

EuclideanDistance@@v[[{5,9}]]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",4}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",4}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

{{"DoubleCone",4},l=FindSubgraphUnitDistanceEmbedding[GraphData[{"DoubleCone",4}],TimeConstraint->300,"Results"->All]//Timing}

gs=SortBy[UniqueEmbeddings[l],Replace[RectilinearCrossingCount[#],Infinity->0]&]

Matchstick

GraphData[{"DoubleCone",4},"Matchstick"]

GraphData[{"DoubleCone",4},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",4},"Edges"]]

gs=DoubleConeGraph[4,GraphLayout->#]&/@{"3DUnitDistanceEmbedding","3DEmbedding"}

EdgeLengths/@gs

3D All

GraphData[{"DoubleCone",4},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",4},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",4},"Polyhedral"]

GraphData[{"DoubleCone",4},"Graph",{"3D","Polyhedron"}]

{"DoubleCone", 5}

GraphData[{"DoubleCone",5},"StandardName"]

Primary

GraphData[{"DoubleCone",5}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",5},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",5},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",5},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",5},"Edges"]

R=Csc[Pi/5]/2;
v=Join[CirclePoints[{-R,0},{R,0},5],Rest@CirclePoints[{R,0},{R,Pi},5]];
v=Join[v,Mean[v[[#]]]&/@{{2,5},{6,9}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[10,1,2,3,4,5,1,9,8,7,6,1,11],e[9,11,6],e[2,10,5],e[3,1,7],e[4,1,8]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

gs=DoubleConeGraph[5,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

g=;

Degenerate

GraphData[{"DoubleCone",5},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",5},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",5},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",5},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",5}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",5}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&]]

quad

Planar

GraphData[{"DoubleCone",5},"Planar"]

GraphData[{"DoubleCone",5},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",5},{"RCN","CN"}]

GraphData[{"DoubleCone",5},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",5}]]

s=Sqrt[3]/2;
c=Join[{{-1/2,-s},{1/2,-s}},Subdivide[{-1/4,-2/3},{1/4,-2/3},2]];
v={#,#2/(2s)}&@@@Join[c,{#,-#2}&@@@c,{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,11,6,7,11,1,3,4,5,2],e[6,8,9,10,7],e[3,11,10],e[4,11,9],e[8,11,5]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone",5},"Circulant"]

GraphData[{"DoubleCone",5},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",5},"Halin"]

GraphData[{"DoubleCone",5},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",5},"Rigid"]

GraphData[{"DoubleCone",5},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",5},"Flexible"]

GraphData[{"DoubleCone",5},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",5},"LCF"]

GraphData[{"DoubleCone",5},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",5},"LCFSignature"]

GraphData[{"DoubleCone",5},"LCFNotations"]

GraphData[{"DoubleCone",5},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",5},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",5}],Debug->True]//Timing

GraphData[{"DoubleCone",5},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",5},"VertexList"],GraphData[{"DoubleCone",5},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",5},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",5}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",5},"Matchstick"]

GraphData[{"DoubleCone",5},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",5},"Edges"]]

gs=DoubleConeGraph[5,GraphLayout->#]&/@{"3DUnitDistanceEmbedding","3DEmbedding"}

EdgeLengths/@gs//FullSimplify

3D All

GraphData[{"DoubleCone",5},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",5},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",5},"Polyhedral"]

GraphData[{"DoubleCone",5},"Graph",{"3D","Polyhedron"}]

{"DoubleCone", 6}

Discovered by Eric Weisstein based on UD refinement of {"NoncayleyTransitive", {20, 4}} on Jan 27, 2023

GraphData[{"DoubleCone",6},"StandardName"]

Primary

GraphData[{"DoubleCone",6}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",6},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",6},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",6},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",6},"Edges"]

v=Join[CirclePoints[{-1/2,0},{1,Pi/2},6],CirclePoints[{1/2,0},{1,Pi/2},6],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,6,1],e[7,8,9,10,11,12,7],Sequence@@Table[{i,13},{i,12}]},VertexCoordinates->v,VertexLabels->Automatic]

v=Join[CirclePoints[{-1,0},{1,Pi/2},6],CirclePoints[{1,0},{1,Pi/2},6],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,6,1],e[7,8,9,10,11,12,7],Sequence@@Table[{i,13},{i,12}]},VertexCoordinates->v,VertexLabels->Automatic]

v=Join[CirclePoints[{-5/2,0},{1,Pi/2},6],CirclePoints[{5/2,0},{1,Pi/2},6],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,6,1],e[7,8,9,10,11,12,7],Sequence@@Table[{i,13},{i,12}]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

v=Join[CirclePoints[6],CirclePoints[{1/2,Pi/2},6],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,6,1],e[{7,12},7],Sequence@@Table[{i,13},{i,12}]},VertexCoordinates->v,VertexLabels->Automatic]

gs=DoubleConeGraph[6,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

DegenerateGraphEmbeddingTypes[]

RecognizeGraph/@gs

Degenerate

GraphData[{"DoubleCone",6},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",6},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",6},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",6},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"DoubleCone",6},"Planar"]

GraphData[{"DoubleCone",6},"Polyhedral"]

GraphData[{"DoubleCone",6},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",6},{"RCN","CN"}]

GraphData[{"DoubleCone",6},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"DoubleCone",6}],TimeConstraint->1])//AbsoluteTiming

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",6}]]

GraphPlot@RotateGraph[GraphicsToGraph@,Pi/6]

v=Join[CirclePoints[6],{{0,0}},Subdivide[{-1/6,1/2},{1/6,1/2},3],{#/3,3/4}&/@{-1,1}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,5,6,1,7,6],e[5,7,2],e[4,7,3],e[7,12,13,7],e[12,8,7,11,13],e[{8,11}],e[9,7,10]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone",6},"Circulant"]

GraphData[{"DoubleCone",6},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",6},"Halin"]

GraphData[{"DoubleCone",6},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",6},"Rigid"]

GraphData[{"DoubleCone",6},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",6},"Flexible"]

GraphData[{"DoubleCone",6},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",6},"LCF"]

GraphData[{"DoubleCone",6},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",6},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",6}],Debug->True]//Timing

GraphData[{"DoubleCone",6},"Graph","UnitDistance"]//StyleGraphs

Select[%,!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&]

UnitDistance construction

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"NoncayleyTransitive",{20,4}},"Graph",#]&/@{"All","UnitDistance"})

g6=LabelGraph@IndexGraph@ContractCoincidentVertices@

Graph[Range[13],UnitEdges[v=GraphEmbedding[g6]],VertexCoordinates->v,VertexLabels->Automatic]

EuclideanDistance@@v[[{9,6}]]

v=Join[CirclePoints[{1,Pi/12},6],CirclePoints[{1,-Pi/12},6],{{0,0}}];
g=Graph[Range[Length[v]],UnitEdges[v],VertexCoordinates->v,VertexLabels->Automatic]

g=;

RecognizeGraph[g]

UnitDistanceGraphEmbeddingQ@g6

RecognizeGraph/@{,,}

GraphData[{"NoncayleyTransitive",{20,4}},"Graph","All"]

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",6},"VertexList"],GraphData[{"DoubleCone",6},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",6},"Graph",#]&/@{"All","UnitDistance"})

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",6}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",6}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

{{"DoubleCone",6},l=FindSubgraphUnitDistanceEmbedding[GraphData[{"DoubleCone",6}],TimeConstraint->300,"Results"->All]//Timing}

gs=SortBy[UniqueEmbeddings[l],Replace[RectilinearCrossingCount[#],Infinity->0]&]

Matchstick

GraphData[{"DoubleCone",6},"Matchstick"]

GraphData[{"DoubleCone",6},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",6},"Edges"]]

g=DoubleConeGraph[6,GraphLayout->"3DEmbedding"]

RecognizeGraph@g

3D All

GraphData[{"DoubleCone",6},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",6},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",6},"Polyhedral"]

GraphData[{"DoubleCone",6},"Graph",{"3D","Polyhedron"}]

{"DoubleCone", 7}

GraphData[{"DoubleCone",7},"StandardName"]

Primary

GraphData[{"DoubleCone",7}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",7},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",7},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",7},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",7},"Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

gs=DoubleConeGraph[7,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",7},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",7},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",7},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",7},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",7}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",7}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",7},"Planar"]

GraphData[{"DoubleCone",7},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",7},{"RCN","CN"}]

GraphData[{"DoubleCone",7},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[7,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",7}]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone",7},"Circulant"]

GraphData[{"DoubleCone",7},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",7},"Halin"]

GraphData[{"DoubleCone",7},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",7},"Rigid"]

GraphData[{"DoubleCone",7},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",7},"Flexible"]

GraphData[{"DoubleCone",7},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",7},"LCF"]

GraphData[{"DoubleCone",7},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",7},"LCFSignature"]

GraphData[{"DoubleCone",7},"LCFNotations"]

GraphData[{"DoubleCone",7},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",7},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",7}],Debug->True]//Timing

GraphData[{"DoubleCone",7},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",7},"VertexList"],GraphData[{"DoubleCone",7},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",7},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",7}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",7},"Matchstick"]

GraphData[{"DoubleCone",7},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",7},"Edges"]]

g=DoubleConeGraph[7,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",7},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",7},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",7},"Polyhedral"]

GraphData[{"DoubleCone",7},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",7},"Graph",{"3D","Canonical"}]

{"DoubleCone", 8}

GraphData[{"DoubleCone", 8},"StandardName"]

Primary

GraphData[{"DoubleCone", 8}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone", 8},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone", 8},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone", 8},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone", 8},"Edges"]

gs=DoubleConeGraph[8,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone", 8},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone", 8},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone", 8},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone", 8},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone", 8}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone", 8}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone", 8},"Planar"]

GraphData[{"DoubleCone", 8},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone", 8},{"RCN","CN"}]

GraphData[{"DoubleCone", 8},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[8,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone", 8}]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone", 8},"Circulant"]

GraphData[{"DoubleCone", 8},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone", 8},"Halin"]

GraphData[{"DoubleCone", 8},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone", 8},"Rigid"]

GraphData[{"DoubleCone", 8},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone", 8},"Flexible"]

GraphData[{"DoubleCone", 8},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone", 8},"LCF"]

GraphData[{"DoubleCone", 8},"HamiltonianCycleCount"]

GraphData[{"DoubleCone", 8},"LCFSignature"]

GraphData[{"DoubleCone", 8},"LCFNotations"]

GraphData[{"DoubleCone", 8},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone", 8},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone", 8}],Debug->True]//Timing

GraphData[{"DoubleCone", 8},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone", 8},"VertexList"],GraphData[{"DoubleCone", 8},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone", 8},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone", 8}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone", 8},"Matchstick"]

GraphData[{"DoubleCone", 8},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone", 8},"Edges"]]

g=DoubleConeGraph[8,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone", 8},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone", 8},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone", 8},"Polyhedral"]

GraphData[{"DoubleCone", 8},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone", 8},"Graph",{"3D","Canonical"}]

{"DoubleCone", 9}

GraphData[{"DoubleCone",9},"StandardName"]

Primary

GraphData[{"DoubleCone",9}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",9},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",9},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",9},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",9},"Edges"]

gs=DoubleConeGraph[9,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

RecognizeGraph/@%

Degenerate

GraphData[{"DoubleCone",9},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",9},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",9},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",9},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",9}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",9}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",9},"Planar"]

GraphData[{"DoubleCone",9},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",9},{"RCN","CN"}]

GraphData[{"DoubleCone",9},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[9,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",9}]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone",9},"Circulant"]

GraphData[{"DoubleCone",9},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",9},"Halin"]

GraphData[{"DoubleCone",9},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",9},"Rigid"]

GraphData[{"DoubleCone",9},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",9},"Flexible"]

GraphData[{"DoubleCone",9},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",9},"LCF"]

GraphData[{"DoubleCone",9},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",9},"LCFSignature"]

GraphData[{"DoubleCone",9},"LCFNotations"]

GraphData[{"DoubleCone",9},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",9},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",9}],Debug->True]//Timing

GraphData[{"DoubleCone",9},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",9},"VertexList"],GraphData[{"DoubleCone",9},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",9},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",9}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",9},"Matchstick"]

GraphData[{"DoubleCone",9},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",9},"Edges"]]

g=DoubleConeGraph[9,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",9},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",9},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",9},"Polyhedral"]

GraphData[{"DoubleCone",9},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",9},"Graph",{"3D","Canonical"}]

{"DoubleCone", 10}

GraphData[{"DoubleCone",10},"StandardName"]

Primary

GraphData[{"DoubleCone",10}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",10},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",10},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",10},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",10},"Edges"]

RecognizeGraph[g]

gs=DoubleConeGraph[10,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",10},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",10},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",10},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",10},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",10}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",10}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",10},"Planar"]

GraphData[{"DoubleCone",10},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",10},{"RCN","CN"}]

GraphData[{"DoubleCone",10},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[8,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",10}]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone",10},"Circulant"]

GraphData[{"DoubleCone",10},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",10},"Halin"]

GraphData[{"DoubleCone",10},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",10},"Rigid"]

GraphData[{"DoubleCone",10},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",10},"Flexible"]

GraphData[{"DoubleCone",10},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",10},"LCF"]

GraphData[{"DoubleCone",10},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",10},"LCFSignature"]

GraphData[{"DoubleCone",10},"LCFNotations"]

GraphData[{"DoubleCone",10},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",10},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",10}],Debug->True]//Timing

GraphData[{"DoubleCone",10},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",10},"VertexList"],GraphData[{"DoubleCone",10},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",10},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",10}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",10},"Matchstick"]

GraphData[{"DoubleCone",10},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",10},"Edges"]]

g=DoubleConeGraph[10,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",10},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",10},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",10},"Polyhedral"]

GraphData[{"DoubleCone",10},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",10},"Graph",{"3D","Canonical"}]

{"DoubleCone", 11}

GraphData[{"DoubleCone",11},"StandardName"]

Primary

GraphData[{"DoubleCone",11}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",11},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",11},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",11},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",11},"Edges"]

RecognizeGraph[g]

gs=DoubleConeGraph[11,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",11},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",11},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",11},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",11},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",11}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",11}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",11},"Planar"]

GraphData[{"DoubleCone",11},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",11},{"RCN","CN"}]

GraphData[{"DoubleCone",11},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[11,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",11}]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone",11},"Circulant"]

GraphData[{"DoubleCone",11},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",11},"Halin"]

GraphData[{"DoubleCone",11},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",11},"Rigid"]

GraphData[{"DoubleCone",11},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",11},"Flexible"]

GraphData[{"DoubleCone",11},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",11},"LCF"]

GraphData[{"DoubleCone",11},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",11},"LCFSignature"]

GraphData[{"DoubleCone",11},"LCFNotations"]

GraphData[{"DoubleCone",11},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",11},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",11}],Debug->True]//Timing

GraphData[{"DoubleCone",11},"Graph","UnitDistance"]//StyleGraphs

Select[%,!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&]

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",11},"VertexList"],GraphData[{"DoubleCone",11},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",11},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",11}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",11},"Matchstick"]

GraphData[{"DoubleCone",11},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",11},"Edges"]]

g=DoubleConeGraph[11,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",11},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",11},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",11},"Polyhedral"]

GraphData[{"DoubleCone",11},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",11},"Graph",{"3D","Canonical"}]

{"DoubleCone", 12}

GraphData[{"DoubleCone",12},"StandardName"]

Primary

GraphData[{"DoubleCone",12}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",12},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",12},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",12},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",12},"Edges"]

RecognizeGraph[g]

gs=DoubleConeGraph[12,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",12},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",12},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",12},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",12},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",12}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",12}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",12},"Planar"]

GraphData[{"DoubleCone",12},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",12},{"RCN","CN"}]

GraphData[{"DoubleCone",12},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[8,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",12}]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone",12},"Circulant"]

GraphData[{"DoubleCone",12},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",12},"Halin"]

GraphData[{"DoubleCone",12},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",12},"Rigid"]

GraphData[{"DoubleCone",12},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",12},"Flexible"]

GraphData[{"DoubleCone",12},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",12},"LCF"]

GraphData[{"DoubleCone",12},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",12},"LCFSignature"]

GraphData[{"DoubleCone",12},"LCFNotations"]

GraphData[{"DoubleCone",12},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",12},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",12}],Debug->True]//Timing

GraphData[{"DoubleCone",12},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",12},"VertexList"],GraphData[{"DoubleCone",12},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",12},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",12}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",12},"Matchstick"]

GraphData[{"DoubleCone",12},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",12},"Edges"]]

g=DoubleConeGraph[12,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",12},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",12},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",12},"Polyhedral"]

GraphData[{"DoubleCone",12},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",12},"Graph",{"3D","Canonical"}]

{"DoubleCone", 13}

GraphData[{"DoubleCone",13},"StandardName"]

Primary

GraphData[{"DoubleCone",13}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",13},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",13},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",13},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",13},"Edges"]

RecognizeGraph[g]

gs=DoubleConeGraph[13,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",13},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",13},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",13},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",13},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",13}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",13}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",13},"Planar"]

GraphData[{"DoubleCone",13},"Graph","Planar"]//StyleGraphs

RecognizeGraph[g]

MinimalCrossing

GraphData[{"DoubleCone",13},{"RCN","CN"}]

GraphData[{"DoubleCone",13},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[13,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",13}]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone",13},"Circulant"]

GraphData[{"DoubleCone",13},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",13},"Halin"]

GraphData[{"DoubleCone",13},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",13},"Rigid"]

GraphData[{"DoubleCone",13},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",13},"Flexible"]

GraphData[{"DoubleCone",13},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",13},"LCF"]

GraphData[{"DoubleCone",13},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",13},"LCFSignature"]

GraphData[{"DoubleCone",13},"LCFNotations"]

GraphData[{"DoubleCone",13},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",13},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",13}],Debug->True]//Timing

GraphData[{"DoubleCone",13},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",13},"VertexList"],GraphData[{"DoubleCone",13},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",13},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",13}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",13},"Matchstick"]

GraphData[{"DoubleCone",13},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",13},"Edges"]]

g=DoubleConeGraph[13,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",13},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",13},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",13},"Polyhedral"]

GraphData[{"DoubleCone",13},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",13},"Graph",{"3D","Canonical"}]

{"DoubleCone", 14}

GraphData[{"DoubleCone",14},"StandardName"]

Primary

GraphData[{"DoubleCone",14}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",14},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",14},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",14},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",14},"Edges"]

RecognizeGraph[g]

gs=DoubleConeGraph[14,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",14},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",14},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",14},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",14},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",14}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",14}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",14},"Planar"]

GraphData[{"DoubleCone",14},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",14},{"RCN","CN"}]

GraphData[{"DoubleCone",14},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[14,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",14}]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"DoubleCone",14},"Circulant"]

GraphData[{"DoubleCone",14},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",14},"Halin"]

GraphData[{"DoubleCone",14},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",14},"Rigid"]

GraphData[{"DoubleCone",14},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",14},"Flexible"]

GraphData[{"DoubleCone",14},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",14},"LCF"]

GraphData[{"DoubleCone",14},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",14},"LCFSignature"]

GraphData[{"DoubleCone",14},"LCFNotations"]

GraphData[{"DoubleCone",14},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",14},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",14}],Debug->True]//Timing

GraphData[{"DoubleCone",14},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",14},"VertexList"],GraphData[{"DoubleCone",14},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",14},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",14}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",14},"Matchstick"]

GraphData[{"DoubleCone",14},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",14},"Edges"]]

g=DoubleConeGraph[14,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",14},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",14},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",14},"Polyhedral"]

GraphData[{"DoubleCone",14},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",14},"Graph",{"3D","Canonical"}]

{"DoubleCone", 15}

GraphData[{"DoubleCone",15},"StandardName"]

Primary

GraphData[{"DoubleCone",15}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",15},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",15},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",15},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",15},"Edges"]

RecognizeGraph[g]

gs=DoubleConeGraph[15,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",15},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",15},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",15},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",15},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",15}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",15}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",15},"Planar"]

GraphData[{"DoubleCone",15},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",15},{"RCN","CN"}]

GraphData[{"DoubleCone",15},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[15,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",15}]]

Circulant

GraphData[{"DoubleCone",15},"Circulant"]

GraphData[{"DoubleCone",15},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",15},"Halin"]

GraphData[{"DoubleCone",15},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",15},"Rigid"]

GraphData[{"DoubleCone",15},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",15},"Flexible"]

GraphData[{"DoubleCone",15},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",15},"LCF"]

GraphData[{"DoubleCone",15},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",15},"LCFSignature"]

GraphData[{"DoubleCone",15},"LCFNotations"]

GraphData[{"DoubleCone",15},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",15},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",15}],Debug->True]//Timing

GraphData[{"DoubleCone",15},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",15},"VertexList"],GraphData[{"DoubleCone",15},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",15},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",15}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",15},"Matchstick"]

GraphData[{"DoubleCone",15},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",15},"Edges"]]

g=DoubleConeGraph[15,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",15},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",15},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",15},"Polyhedral"]

GraphData[{"DoubleCone",15},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",15},"Graph",{"3D","Canonical"}]

{"DoubleCone", 16}

GraphData[{"DoubleCone",16},"StandardName"]

Primary

GraphData[{"DoubleCone",16}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",16},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",16},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",16},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",16},"Edges"]

RecognizeGraph[g]

gs=DoubleConeGraph[16,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",16},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",16},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",16},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",16},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",16}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",16}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",16},"Planar"]

GraphData[{"DoubleCone",16},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",16},{"RCN","CN"}]

GraphData[{"DoubleCone",16},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[16,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",16}]]

Circulant

GraphData[{"DoubleCone",16},"Circulant"]

GraphData[{"DoubleCone",16},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",16},"Halin"]

GraphData[{"DoubleCone",16},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",16},"Rigid"]

GraphData[{"DoubleCone",16},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",16},"Flexible"]

GraphData[{"DoubleCone",16},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",16},"LCF"]

GraphData[{"DoubleCone",16},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",16},"LCFSignature"]

GraphData[{"DoubleCone",16},"LCFNotations"]

GraphData[{"DoubleCone",16},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",16},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",16}],Debug->True]//Timing

GraphData[{"DoubleCone",16},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",16},"VertexList"],GraphData[{"DoubleCone",16},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",16},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",16}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",16},"Matchstick"]

GraphData[{"DoubleCone",16},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",16},"Edges"]]

g=DoubleConeGraph[16,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",16},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",16},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",16},"Polyhedral"]

GraphData[{"DoubleCone",16},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",16},"Graph",{"3D","Canonical"}]

{"DoubleCone", 17}

GraphData[{"DoubleCone",17},"StandardName"]

Primary

GraphData[{"DoubleCone",17}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",17},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",17},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",17},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",17},"Edges"]

RecognizeGraph[g]

gs=DoubleConeGraph[17,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",17},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",17},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",17},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",17},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",17}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",17}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",17},"Planar"]

GraphData[{"DoubleCone",17},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",17},{"RCN","CN"}]

GraphData[{"DoubleCone",17},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[17,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",17}]]

Circulant

GraphData[{"DoubleCone",17},"Circulant"]

GraphData[{"DoubleCone",17},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",17},"Halin"]

GraphData[{"DoubleCone",17},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",17},"Rigid"]

GraphData[{"DoubleCone",17},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",17},"Flexible"]

GraphData[{"DoubleCone",17},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",17},"LCF"]

GraphData[{"DoubleCone",17},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",17},"LCFSignature"]

GraphData[{"DoubleCone",17},"LCFNotations"]

GraphData[{"DoubleCone",17},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",17},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",17}],Debug->True]//Timing

GraphData[{"DoubleCone",17},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",17},"VertexList"],GraphData[{"DoubleCone",17},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",17},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",17}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",17},"Matchstick"]

GraphData[{"DoubleCone",17},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",17},"Edges"]]

g=DoubleConeGraph[17,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",17},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",17},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",17},"Polyhedral"]

GraphData[{"DoubleCone",17},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",17},"Graph",{"3D","Canonical"}]

{"DoubleCone", 18}

GraphData[{"DoubleCone",18},"StandardName"]

Primary

GraphData[{"DoubleCone",18}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",18},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",18},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",18},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",18},"Edges"]

RecognizeGraph[g]

gs=DoubleConeGraph[18,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",18},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",18},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",18},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",18},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",18}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",18}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",18},"Planar"]

GraphData[{"DoubleCone",18},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",18},{"RCN","CN"}]

GraphData[{"DoubleCone",18},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[18,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",18}]]

Circulant

GraphData[{"DoubleCone",18},"Circulant"]

GraphData[{"DoubleCone",18},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",18},"Halin"]

GraphData[{"DoubleCone",18},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",18},"Rigid"]

GraphData[{"DoubleCone",18},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",18},"Flexible"]

GraphData[{"DoubleCone",18},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",18},"LCF"]

GraphData[{"DoubleCone",18},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",18},"LCFSignature"]

GraphData[{"DoubleCone",18},"LCFNotations"]

GraphData[{"DoubleCone",18},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",18},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",18}],Debug->True]//Timing

GraphData[{"DoubleCone",18},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",18},"VertexList"],GraphData[{"DoubleCone",18},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",18},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",18}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",18},"Matchstick"]

GraphData[{"DoubleCone",18},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",18},"Edges"]]

g=DoubleConeGraph[18,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",18},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",18},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",18},"Polyhedral"]

GraphData[{"DoubleCone",18},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",18},"Graph",{"3D","Canonical"}]

{"DoubleCone", 19}

GraphData[{"DoubleCone",19},"StandardName"]

Primary

GraphData[{"DoubleCone",19}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",19},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",19},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",19},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",19},"Edges"]

RecognizeGraph[g]

gs=DoubleConeGraph[19,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",19},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",19},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",19},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",19},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",19}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",19}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",19},"Planar"]

GraphData[{"DoubleCone",19},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",19},{"RCN","CN"}]

GraphData[{"DoubleCone",19},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[8,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",19}]]

Circulant

GraphData[{"DoubleCone",19},"Circulant"]

GraphData[{"DoubleCone",19},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",19},"Halin"]

GraphData[{"DoubleCone",19},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",19},"Rigid"]

GraphData[{"DoubleCone",19},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",19},"Flexible"]

GraphData[{"DoubleCone",19},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",19},"LCF"]

GraphData[{"DoubleCone",19},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",19},"LCFSignature"]

GraphData[{"DoubleCone",19},"LCFNotations"]

GraphData[{"DoubleCone",19},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",19},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",19}],Debug->True]//Timing

GraphData[{"DoubleCone",19},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",19},"VertexList"],GraphData[{"DoubleCone",19},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",19},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",19}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",19},"Matchstick"]

GraphData[{"DoubleCone",19},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",19},"Edges"]]

g=DoubleConeGraph[19,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",19},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",19},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",19},"Polyhedral"]

GraphData[{"DoubleCone",19},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",19},"Graph",{"3D","Canonical"}]

{"DoubleCone", 20}

GraphData[{"DoubleCone",20},"StandardName"]

Primary

GraphData[{"DoubleCone",20}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"DoubleCone",20},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"DoubleCone",20},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"DoubleCone",20},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"DoubleCone",20},"Edges"]

RecognizeGraph[g]

gs=DoubleConeGraph[20,GraphLayout->#]&/@{"RadialEmbedding","NestedRadialEmbedding","GridEmbedding","BarbellEmbedding","PlanarEmbedding"}

Degenerate

GraphData[{"DoubleCone",20},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"DoubleCone",20},"Graph","Degenerate"]

Bilateral

GraphData[{"DoubleCone",20},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"DoubleCone",20},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"DoubleCone",20}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"DoubleCone",20}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"DoubleCone",20},"Planar"]

GraphData[{"DoubleCone",20},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"DoubleCone",20},{"RCN","CN"}]

GraphData[{"DoubleCone",20},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

DoubleConeGraph[20,GraphLayout->"PlanarEmbedding"]

GraphPlot@MinimalCrossingGraph[GraphData[{"DoubleCone",20}]]

Circulant

GraphData[{"DoubleCone",20},"Circulant"]

GraphData[{"DoubleCone",20},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"DoubleCone",20},"Halin"]

GraphData[{"DoubleCone",20},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"DoubleCone",20},"Rigid"]

GraphData[{"DoubleCone",20},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"DoubleCone",20},"Flexible"]

GraphData[{"DoubleCone",20},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"DoubleCone",20},"LCF"]

GraphData[{"DoubleCone",20},"HamiltonianCycleCount"]

GraphData[{"DoubleCone",20},"LCFSignature"]

GraphData[{"DoubleCone",20},"LCFNotations"]

GraphData[{"DoubleCone",20},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"DoubleCone",20},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"DoubleCone",20}],Debug->True]//Timing

GraphData[{"DoubleCone",20},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"DoubleCone",20},"VertexList"],GraphData[{"DoubleCone",20},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"DoubleCone",20},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"DoubleCone",20}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"DoubleCone",20},"Matchstick"]

GraphData[{"DoubleCone",20},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"DoubleCone",20},"Edges"]]

g=DoubleConeGraph[20,GraphLayout->"3DEmbedding"]

3D All

GraphData[{"DoubleCone",20},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"DoubleCone",20},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"DoubleCone",20},"Polyhedral"]

GraphData[{"DoubleCone",20},"Graph",{"3D","Polyhedron"}]

3D Canonical

GraphData[{"DoubleCone",20},"Graph",{"3D","Canonical"}]

Properties

Acyclic

Table[GraphData[{"DoubleCone",n},"Acyclic"],{n,3,20}]

AdjacencyMatrixCount

seq=Table[GraphData[{"DoubleCone",n},"AdjacencyMatrixCount"],{n,3,20}]

FindSequenceFunction[seq,n]//FullSimplify

AlgebraicConnectivity

seq=Table[GraphData[{"DoubleCone",n},"AlgebraicConnectivity"],{n,3,20}]

AlmostHamiltonian

Table[GraphData[{"DoubleCone",n},"AlmostHamiltonian"],{n,3,20}]

Anarboricity

seq=Table[GraphData[{"DoubleCone",n},"Anarboricity"],{n,3,20}]

Antipodal

Table[GraphData[{"DoubleCone",n},"Antipodal"],{n,3,20}]

Apex

Table[GraphData[{"DoubleCone",n},"Apex"],{n,3,20}]

ApexCount

seq=Table[GraphData[{"DoubleCone",n},"ApexCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

Arboricity

Inferred for n > 8:

Table[GraphData[{"DoubleCone",n},"Arboricity"],{n,3,20}]

ArcTransitive

Table[GraphData[{"DoubleCone",n},"ArcTransitive"],{n,3,20}]

ArcTransitivity

Table[GraphData[{"DoubleCone",n},"ArcTransitivity"],{n,3,20}]

ArticulationVertexCount

seq=Table[GraphData[{"DoubleCone",n},"ArticulationVertexCount"],{n,3,20}]

AutomorphismCount

seq=Table[GraphData[{"DoubleCone",n},"AutomorphismCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

BalabanIndex

seq=Table[GraphData[{"DoubleCone",n},"BalabanIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Head//Timing

Bandwidth

Table[GraphData[{"DoubleCone",n},"Bandwidth"],{n,3,20}]

Bicolorable

Table[GraphData[{"DoubleCone",n},"Bicolorable"],{n,3,20}]

Biconnected

Table[GraphData[{"DoubleCone",n},"Biconnected"],{n,3,20}]

Bicubic

Table[GraphData[{"DoubleCone",n},"Bicubic"],{n,3,20}]

Bipartite

Table[GraphData[{"DoubleCone",n},"Bipartite"],{n,3,20}]

BipartiteDimension

seq=Table[GraphData[{"DoubleCone",n},"BipartiteDimension"],{n,3,20}]

Biplanar

Table[GraphData[{"DoubleCone",n},"Biplanar"],{n,3,20}]

BlockCount

seq=Table[GraphData[{"DoubleCone",n},"BlockCount"],{n,3,20}]

BridgeCount

seq=Table[GraphData[{"DoubleCone",n},"BridgeCount"],{n,3,20}]

Bridged

Table[GraphData[{"DoubleCone",n},"Bridged"],{n,3,20}]

BroadcastTime

seq=Table[GraphData[{"DoubleCone",n},"BroadcastTime"],{n,3,20}]

BurningNumber

seq=Table[GraphData[{"DoubleCone",n},"BurningNumber"],{n,3,20}]

CharacteristicPolynomial

(poly=Factor@Table[GraphData[{"DoubleCone",n},"CharacteristicPolynomial"],{n,k0=3,20}]/.f_Function:>Sort[{-f[x],f[x]}][[2]])//Column

poly//Expand//Column

FindLinearRecurrence[poly]//Head//Timing

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[(((-1-x))^(-1+n)) (-1+n-x),{n,k0,20}]

FullSimplify[poly2-poly]

CheegerConstant

seq=Table[GraphData[{"DoubleCone",n},"CheegerConstant"],{n,3,20}]

Chordal

Table[GraphData[{"DoubleCone",n},"Chordal"],{n,3,20}]

ChordCount

seq=Table[GraphData[{"DoubleCone",n},"ChordCount"],{n,3,20}]

ChordlessCycleCount

seq=Table[GraphData[{"DoubleCone",n},"ChordlessCycleCount"],{n,3,20}]

ChromaticInvariant

seq=Table[GraphData[{"DoubleCone",n},"ChromaticInvariant"],{n,3,20}]

ChromaticNumber

seq=Table[GraphData[{"DoubleCone",n},"ChromaticNumber"],{n,3,20}]

FindSequenceFunction[seq,n-3]//FullSimplify

ChromaticPolynomial

poly=Table[GraphData[{"DoubleCone",n},"ChromaticPolynomial"],{n,3,20}]/.f_Function:>f[x]

coef=Factor/@FindLinearRecurrence[poly]

<<MathWorld`Polynomial`

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

CircuitRank

seq=Table[GraphData[{"DoubleCone",n},"CircuitRank"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

Circumference

seq=Table[GraphData[{"DoubleCone",n},"Circumference"],{n,3,20}]

FindSequenceFunction[seq,n-2]

Classes

Intersection@@(GraphData[#,"Classes"]&/@GraphData["DoubleCone"])

ClawFree

Table[GraphData[{"DoubleCone",n},"ClawFree"],{n,3,20}]

CliqueCount

seq=Table[GraphData[{"DoubleCone",n},"CliqueCount"],{n,3,20}]

gf=(x^3)FindGeneratingFunction[seq,x]

SeriesCoefficient[gf,{x,0,n}]//FullSimplify//Factor

CliqueCoveringNumber

seq=Table[GraphData[{"DoubleCone",n},"CliqueCoveringNumber"],{n,3,20}]

gf=(x^3)FindGeneratingFunction[seq,x]

SeriesCoefficient[gf,{x,0,n}]//FullSimplify

CliqueNumber

seq=Table[GraphData[{"DoubleCone",n},"CliqueNumber"],{n,3,20}]

CliquePolynomial

(poly=Factor@Table[GraphData[{"DoubleCone",n},"CliquePolynomial"][x],{n,k0=3,20}])//Column

Coarseness

seq=Table[GraphData[{"DoubleCone",n},"Coarseness"],{n,3,20}]

CoboundaryPolynomial

poly=Table[GraphData[{"DoubleCone",n},"CoboundaryPolynomial"],{n,3,20}]/.f_Function:>f[x,y]

ComplementOddChordlessCycleCount

seq=Table[GraphData[{"DoubleCone",n},"ComplementOddChordlessCycleCount"],{n,3,20}]

ComplementOddChordlessCyclePolynomial

poly=Table[GraphData[{"DoubleCone",n},"ComplementOddChordlessCyclePolynomial"],{n,3,20}]/.f_Function:>f[x]

Conductance

seq=Table[GraphData[{"DoubleCone",n},"Conductance"],{n,3,20}]

Connected

seq=Table[GraphData[{"DoubleCone",n},"Connected"],{n,3,20}]

ConnectedComponentCount

seq=Table[GraphData[{"DoubleCone",n},"ConnectedComponentCount"],{n,3,20}]

ConnectedDominatingSetCount

Inferred for n > 7:

seq=Table[GraphData[{"DoubleCone",n},"ConnectedDominatingSetCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n-2]

ConnectedDominationNumber

seq=Table[GraphData[{"DoubleCone",n},"ConnectedDominationNumber"],{n,3,20}]

ConnectedDominationPolynomial

Inferred for n > 7:

(poly=Table[GraphData[{"DoubleCone",n},"ConnectedDominationPolynomial"],{n,k0=3,20}]/.f_Function:>Factor@f[x])//Column

coef=Factor/@FindLinearRecurrence[DeleteMissing@poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

ConnectedInducedSubgraphCount

Inferred for n > 11:

seq=Table[GraphData[{"DoubleCone",n},"ConnectedInducedSubgraphCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n-2]//FullSimplify

Table[2+(4^n)+2 (-1+n) n,{n,3,20}]==seq

ConnectedInducedSubgraphPolynomial

Inferred for n > 13:

(poly=Table[GraphData[{"DoubleCone",n},"ConnectedInducedSubgraphPolynomial"],{n,k0=3,20}]/.f_Function:>f[x])//Column

coef=Factor/@FindLinearRecurrence[DeleteMissing@poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

FindGeneratingFunction[DeleteMissing@poly,z]//Head//Timing

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,3,20}]

FullSimplify[poly2-poly]

Corank

seq=Table[GraphData[{"DoubleCone",n},"Corank"],{n,3,20}]

CriticalNonplanar

Table[GraphData[{"DoubleCone",n},"CriticalNonplanar"],{n,3,20}]

CrossingNumber

seq=Table[GraphData[{"DoubleCone",n},"CrossingNumber"],{n,3,20}]

Cubic

Table[GraphData[{"DoubleCone",n},"CriticalNonplanar"],{n,3,20}]

Curvatures

Tally/@Table[GraphData[{"DoubleCone",n},"Curvatures"],{n,3,20}]//Column

CycleCount

seq=Table[GraphData[{"DoubleCone",n},"CycleCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

CyclePolynomial

(poly=Table[GraphData[{"DoubleCone",n},"CyclePolynomial"],{n,k0=3,20}]/.f_Function:>Factor@f[x])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Cyclic

Table[GraphData[{"DoubleCone",n},"Cyclic"],{n,3,20}]

CyclicEdgeConnectivity

Inferred for n > 6:

Table[GraphData[{"DoubleCone",n},"CyclicEdgeConnectivity"],{n,3,20}]

Degeneracy

seq=Table[GraphData[{"DoubleCone",n},"Degeneracy"],{n,3,20}]

DegreeCentralities

Tally/@Table[GraphData[{"DoubleCone",n},"DegreeCentralities"],{n,3,20}]//Column

DetourIndex

seq=Table[GraphData[{"DoubleCone",n},"DetourIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

DetourPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"DetourPolynomial"],{n,k0=3,20}]/.f_Function:>-Factor@f[x])//Column

FindLinearRecurrence[poly]//Head//Timing

Diameter

seq=Table[GraphData[{"DoubleCone",n},"Diameter"],{n,3,20}]

Dimension

seq=Table[GraphData[{"DoubleCone",n},"Dimension"],{n,3,20}]

DisorderNumber

seq=Table[GraphData[{"DoubleCone",n},"DisorderNumber"],{n,3,20}]

DistanceHereditary

seq=Table[GraphData[{"DoubleCone",n},"DistanceHereditary"],{n,3,20}]

DistancePolynomial

(poly=Table[GraphData[{"DoubleCone",n},"DistancePolynomial"],{n,k0=3,20}]/.f_Function:>-Factor@f[x])//Column

FindLinearRecurrence[poly]//Head//Timing

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Table[n x(3x+2)-2x^2+1,{n,10}]

FullSimplify[%-poly]

DistanceRegular

Table[GraphData[{"DoubleCone",n},"DistanceRegular"],{n,3,20}]

DistanceTransitive

Table[GraphData[{"DoubleCone",n},"DistanceTransitive"],{n,3,20}]

DistinguishingNumber

seq=Table[GraphData[{"DoubleCone",n},"DistinguishingNumber"],{n,3,20}]

DomaticNumber

Inferred for n > 11:

seq=Table[GraphData[{"DoubleCone",n},"DomaticNumber"],{n,3,20}]

Table[Piecewise[{{4, Mod[n,3]==0}},3],{n,3,20}]==seq

DominatingSetCount

seq=Table[GraphData[{"DoubleCone",n},"DominatingSetCount"],{n,3,20}]

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindSequenceFunction[DeleteMissing@seq,n-2]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

DominatingSets

seq=Table[GraphData[{"DoubleCone",n},"DominatingSets"],{n,3,20}]

l=Table[{{"DoubleCone",n},{0,Missing["TooLarge",{2n+1}]}},{n,13,20}]

PropertyReplace[l,"DominatingSets"]

RenameGraphFiles[]

DominationNumber

seq=Table[GraphData[{"DoubleCone",n},"DominationNumber"],{n,3,20}]

DominationPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"DominationPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x])//Column

FindLinearRecurrence[DeleteMissing@poly]//Head//Timing

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[-1+(((1+x))^n),{n,k0,20}]

FullSimplify[poly2-poly]

Doublecross

Table[GraphData[{"DoubleCone",n},"Doublecross"],{n,3,20}]

Eccentricities

(seq=Table[GraphData[{"DoubleCone",n},"Eccentricities"],{n,3,20}])//Column

EccentricityCentralities

seq=Table[GraphData[{"DoubleCone",n},"EdgeChromaticNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

EdgeBetweennessCentralities

(seq=Table[GraphData[{"DoubleCone",n},"EdgeBetweennessCentralities"],{n,3,20}])//Column

EdgeChromaticNumber

seq=Table[GraphData[{"DoubleCone",n},"EdgeChromaticNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

EdgeConnectivity

Table[GraphData[{"DoubleCone",n},"EdgeConnectivity"],{n,3,20}]

EdgeCount

seq=Table[GraphData[{"DoubleCone",n},"EdgeCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

EdgeCoverCount

seq=Table[GraphData[{"DoubleCone",n},"EdgeCoverCount"],{n,3,20}]

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindSequenceFunction[DeleteMissing@seq,n-2]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

EdgeCoverNumber

seq=Table[GraphData[{"DoubleCone",n},"EdgeCoverNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]

EdgeCoverPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"EdgeCoverPolynomial"],{n,k0=3,20}]/.f_Function:>f[x])//Column

FindLinearRecurrence[DeleteMissing@poly]//Head//Timing

EdgeCutCount

seq=Table[GraphData[{"DoubleCone",n},"EdgeCutCount"],{n,3,20}]

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindSequenceFunction[DeleteMissing@seq,n-2]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

EdgeCutPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"EdgeCutPolynomial"],{n,k0=3,20}]/.f_Function:>f[x])//Column

FindLinearRecurrence[DeleteMissing@poly]//Head//Timing

EdgeTransitive

Table[GraphData[{"DoubleCone",n},"EdgeTransitive"],{n,3,20}]

EigenvectorCentralities

(seq=Table[GraphData[{"DoubleCone",n},"EigenvectorCentralities"],{n,3,20}])//Column

EulerianCycleCount

seq=Table[GraphData[{"DoubleCone",n},"EulerianCycleCount"],{n,3,20}]

FaceCount

seq=Table[GraphData[{"DoubleCone",n},"FaceCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

FlowPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"FlowPolynomial"],{n,k0=3,20}]/.f_Function:>Factor[f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

FractionalArboricity

seq=Table[GraphData[{"DoubleCone",n},"FractionalArboricity"],{n,3,20}]

FractionalChromaticNumber

seq=Table[GraphData[{"DoubleCone",n},"FractionalChromaticNumber"],{n,3,20}]

Factor[((3(n+1)/2-2)/((n-1)/2))]

Table[Piecewise[{{3,Mod[n,2]==0},{((-1+3 n)/(-1+n)),Mod[n,2]==1}}],{n,3,20}]

FractionalEdgeChromaticNumber

seq=Table[GraphData[{"DoubleCone",n},"FractionalEdgeChromaticNumber"],{n,3,20}]

FindSequenceFunction[Drop[seq,2],n-2]//Factor

Genus

seq=Table[GraphData[{"DoubleCone",n},"Genus"],{n,3,20}]

Geodetic

Table[GraphData[{"DoubleCone",n},"Geodetic"],{n,3,20}]

Girth

seq=Table[GraphData[{"DoubleCone",n},"Girth"],{n,3,20}]

GlobalClusteringCoefficient

seq=Table[GraphData[{"DoubleCone",n},"GlobalClusteringCoefficient"],{n,3,20}]

FindSequenceFunction[seq,n-2]

FindSequenceFunction[Rest@seq,n-3]//Factor

gf=(x^3)FindGeneratingFunction[seq,x]

Series[(x^3) ((2/11)-(6/(x^5))-(2/(x^4))-(6/(5 (x^3)))-(6/(7 (x^2)))-(2/(3 x))+((6 ArcTanh[(Sqrt[x])])/(x^(11/2)))),{x,0,10}]

SeriesCoefficient[gf,{x,0,n}]

Table[(6/(2n+5)),{n,3,20}]

Gonality

seq=Table[GraphData[{"DoubleCone",n},"Gonality"],{n,3,20}]

Graceful

Table[GraphData[{"DoubleCone",n},"Graceful"],{n,3,20}]

GracefulLabelingCount

seq=Table[GraphData[{"DoubleCone",n},"GracefulLabelingCount"],{n,3,20}]

HadwigerNumber

Inferred for n > 19:

Table[GraphData[{"DoubleCone",n},"HadwigerNumber"],{n,3,20}]

HamiltonConnected

Table[GraphData[{"DoubleCone",n},"HamiltonConnected"],{n,3,20}]

HamiltonDecomposable

Table[GraphData[{"DoubleCone",n},"HamiltonDecomposable"],{n,3,20}]

HamiltonDecompositionCount

seq=Table[GraphData[{"DoubleCone",n},"HamiltonDecompositionCount"],{n,3,20}]

Hamiltonian

Table[GraphData[{"DoubleCone",n},"Hamiltonian"],{n,3,20}]

HamiltonianCycleCount

seq=Table[GraphData[{"DoubleCone",n},"HamiltonianCycleCount"],{n,3,20}]

HamiltonianNumber

seq=Table[GraphData[{"DoubleCone",n},"HamiltonianNumber"],{n,3,20}]

HamiltonianPathCount

seq=Table[GraphData[{"DoubleCone",n},"HamiltonianPathCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

HamiltonianWalkCount

seq=Table[GraphData[{"DoubleCone",n},"HamiltonianWalkCount"],{n,3,20}]

HamiltonLaceable

Table[GraphData[{"DoubleCone",n},"HamiltonLaceable"],{n,3,20}]

HararyIndex

seq=Table[GraphData[{"DoubleCone",n},"HararyIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

HexagonCount

seq=Table[GraphData[{"DoubleCone",n},"HexagonCount"],{n,3,20}]

gf=(x^3)FindGeneratingFunction[seq,x]

SeriesCoefficient[gf,{x,0,n}]//FullSimplify

HStarConnected

Table[GraphData[{"DoubleCone",n},"HStarConnected"],{n,3,20}]

Hypohamiltonian

Table[GraphData[{"DoubleCone",n},"Hypohamiltonian"],{n,3,20}]

Hypotraceable

Table[GraphData[{"DoubleCone",n},"Hypotraceable"],{n,3,20}]

Identity

Table[GraphData[{"DoubleCone",n},"Identity"],{n,3,20}]

IdiosyncraticPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"IdiosyncraticPolynomial"],{n,k0=3,20}]/.f_Function:>f[x,y])//Column

FindLinearRecurrence[DeleteMissing@poly]//Head//Timing

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[(x+1)^(n-1) (x+1-n),{n,k0,10}]

FullSimplify[poly2/poly]

IndependenceNumber

seq=Table[GraphData[{"DoubleCone",n},"IndependenceNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

IndependencePolynomial

(poly=Table[GraphData[{"DoubleCone",n},"IndependencePolynomial"],{n,k0=3,20}]/.f_Function:>f[x])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

IndependenceRatio

seq=Table[GraphData[{"DoubleCone",n},"IndependenceRatio"],{n,3,20}]

FullSimplify[FindSequenceFunction[seq,n-2],n∈Integers]

IndependentEdgeSetCount

Inferred for n > 18:

seq=Table[GraphData[{"DoubleCone",n},"IndependentEdgeSetCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n-2]

gf=(x^3)FindGeneratingFunction[DeleteMissing@seq,x]

SeriesCoefficient[gf,{x,0,n}]//FullSimplify

IndependentVertexSetCount

seq=Table[GraphData[{"DoubleCone",n},"IndependentVertexSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

IntersectionNumber

seq=Table[GraphData[{"DoubleCone",n},"IntersectionNumber"],{n,3,20}]

IrredundanceNumber

Inferred for n > 8:

seq=Table[GraphData[{"DoubleCone",n},"IrredundanceNumber"],{n,3,20}]

IrredundancePolynomial

(poly=Table[GraphData[{"DoubleCone",n},"IrredundancePolynomial"],{n,3,20}]/.f_Function:>f[x])//Column

FindLinearRecurrence[DeleteMissing@poly]//Head//Timing

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[(x+1)^(n-1) (x+1-n),{n,k0,10}]

FullSimplify[poly2/poly]

IrredundantSetCount

seq=Table[GraphData[{"DoubleCone",n},"IrredundantSetCount"],{n,3,20}]

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindSequenceFunction[DeleteMissing@seq,n-2]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

IsolatedPointCount

seq=Table[GraphData[{"DoubleCone",n},"IsolatedPointCount"],{n,3,20}]

KatzCentralities

(seq=Table[GraphData[{"DoubleCone",n},"KatzCentralities"],{n,3,20}])//Column

KirchhoffIndex

seq=Table[GraphData[{"DoubleCone",n},"KirchhoffIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Head//Timing

FindGeneratingFunction[seq,x]//Head//Timing

KirchhoffSumIndex

seq=Table[GraphData[{"DoubleCone",n},"KirchhoffSumIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Head//Timing

FindGeneratingFunction[seq,x]//Head//Timing

LaplacianPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"LaplacianPolynomial"][x],{n,k0=3,20}]/.f_Function:>f[x])//Column

FindLinearRecurrence[DeleteMissing@poly]//Head//Timing

LeafCount

seq=Table[GraphData[{"DoubleCone",n},"LeafCount"],{n,3,20}]

Likelihood

seq=Table[GraphData[{"DoubleCone",n},"Likelihood"],{n,3,20}]

LinearArboricity

seq=Table[GraphData[{"DoubleCone",n},"LinearArboricity"],{n,3,20}]

LocalClusteringCoefficients

Tally/@(seq=Table[GraphData[{"DoubleCone",n},"LocalClusteringCoefficients"],{n,3,20}])//Column

LongestCycleCount

seq=Table[GraphData[{"DoubleCone",n},"LongestCycleCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

LongestPathCount

seq=Table[GraphData[{"DoubleCone",n},"LongestPathCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

LongestPathLength

seq=Table[GraphData[{"DoubleCone",n},"LongestPathLength"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

LovaszNumber

seq=Table[GraphData[{"DoubleCone",n},"LovaszNumber"],{n,3,20}]

LowerIndependenceNumber

seq=Table[GraphData[{"DoubleCone",n},"LowerIndependenceNumber"],{n,3,20}]

LowerMatchingNumber

seq=Table[GraphData[{"DoubleCone",n},"LowerMatchingNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

MatchingGeneratingPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"MatchingGeneratingPolynomial"],{n,k0=3,20}]/.f_Function:>f[x])//Column

coef=Factor/@FindLinearRecurrence[DeleteMissing@poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

MatchingNumber

seq=Table[GraphData[{"DoubleCone",n},"MatchingNumber"],{n,3,20}]

MatchingPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"MatchingPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x])//Column

coef=Factor/@FindLinearRecurrence[DeleteMissing@poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

MaximalCliqueCount

seq=Table[GraphData[{"DoubleCone",n},"MaximalCliqueCount"],{n,3,20}]

gf=(x^3)FindGeneratingFunction[seq,x]

SeriesCoefficient[gf,{x,0,n}]

MaximalCliquePolynomial

(poly=Table[GraphData[{"DoubleCone",n},"MaximalCliquePolynomial"],{n,3,20}]/.f_Function:>f[x])

MaximalIndependencePolynomial

(poly=Table[GraphData[{"DoubleCone",n},"MaximalIndependencePolynomial"],{n,3,20}]/.f_Function:>f[x])//Column

coef=Factor/@FindLinearRecurrence[DeleteMissing@poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

limplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

MaximalIndependentEdgeSetCount

seq=Table[GraphData[{"DoubleCone",n},"MaximalIndependentEdgeSetCount"],{n,3,20}]

FindLinearRecurrence[Drop[seq,4]]//Head

FindSequenceFunction[seq,n-2]//Head//Timing

FindGeneratingFunction[seq,x]//Head//Timing

MaximalIndependentVertexSetCount

seq=Table[GraphData[{"DoubleCone",n},"MaximalIndependentVertexSetCount"],{n,3,20}]

gf=(x^3)FindGeneratingFunction[seq,x]

SeriesCoefficient[gf,{x,0,n}]//FullSimplify

MaximalIrredundancePolynomial

(poly=Table[GraphData[{"DoubleCone",n},"MaximalIrredundancePolynomial"],{n,3,20}]/.f_Function:>f[x])//Column

FindLinearRecurrence[DeleteMissing@poly]//Head//Timing

MaximalIrredundantSetCount

seq=Table[GraphData[{"DoubleCone",n},"MaximalIrredundantSetCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n-2]//Head//Timing

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

MaximalMatchingGeneratingPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"MaximalMatchingGeneratingPolynomial"],{n,3,20}]/.f_Function:>f[x])//Column

coef=Factor/@FindLinearRecurrence[DeleteMissing@poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[(x+1)^(n-1) (x+1-n),{n,k0,10}]

FullSimplify[poly2/poly]

MaximumCliqueCount

seq=Table[GraphData[{"DoubleCone",n},"MaximumCliqueCount"],{n,3,20}]

gf=(x^3)FindGeneratingFunction[seq,x]

SeriesCoefficient[gf,{x,0,n}]

MaximumIndependentEdgeSetCount

seq=Table[GraphData[{"DoubleCone",n},"MaximumIndependentEdgeSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

MaximumIndependentVertexSetCount

seq=Table[GraphData[{"DoubleCone",n},"MaximumIndependentVertexSetCount"],{n,3,20}]

gf=(x^3)FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>2]

MaximumIrredundantSetCount

seq=Table[GraphData[{"DoubleCone",n},"MaximumIrredundantSetCount"],{n,3,20}]

DeleteMissing@seq[[;;;;4]]

DeleteMissing@seq[[2;;;;4]]

DeleteMissing@seq[[3;;;;4]]

DeleteMissing@seq[[4;;;;4]]

FindSequenceFunction[DeleteMissing@seq,n-2]//Head//Timing

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

MaximumLeafNumber

seq=Table[GraphData[{"DoubleCone",n},"MaximumLeafNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

MaximumVertexDegree

seq=Table[GraphData[{"DoubleCone",n},"MaximumVertexDegree"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

MeanClusteringCoefficient

seq=Table[GraphData[{"DoubleCone",n},"MeanClusteringCoefficient"],{n,3,20}]

FindSequenceFunction[Rest@seq,n-3]//Factor

FindGeneratingFunction[seq,x]

MeanCurvature

seq=Table[GraphData[{"DoubleCone",n},"MeanCurvature"],{n,3,20}]

FindSequenceFunction[seq,n-2]

MeanDistance

seq=Table[GraphData[{"DoubleCone",n},"MeanDistance"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

Median

seq=Table[GraphData[{"DoubleCone",n},"Median"],{n,3,20}]

MetricDimension

seq=Table[GraphData[{"DoubleCone",n},"MetricDimension"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n-2]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

Meyniel

seq=Table[GraphData[{"DoubleCone",n},"Meyniel"],{n,3,20}]

MinimalConnectedDominatingSetCount

Inferred for n > 8:

seq=Table[GraphData[{"DoubleCone",n},"MinimalConnectedDominatingSetCount"],{n,3,20}]

MinimalConnectedDominationPolynomial

Inferred for n > 8:

(poly=Table[GraphData[{"DoubleCone",n},"MinimalConnectedDominationPolynomial"],{n,3,20}]/.f_Function:>f[x])

MinimalDominatingSetCount

seq=Table[GraphData[{"DoubleCone",n},"MinimalDominatingSetCount"],{n,3,20}]

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindSequenceFunction[DeleteMissing@seq,n-2]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

MinimalDominationPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"MinimalDominationPolynomial"],{n,3,20}]/.f_Function:>f[x])//Column

coef=Factor/@FindLinearRecurrence[DeleteMissing@poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

MinimalEdgeCoverCount

seq=Table[GraphData[{"DoubleCone",n},"MinimalEdgeCoverCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n]//Head//Timing

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

MinimalEdgeCoverPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"MinimalEdgeCoverPolynomial"],{n,3,20}]/.f_Function:>f[x])//Column

FindGeneratingFunction[DeleteMissing@poly,z]//Head//Timing

MinimalEdgeCutCount

seq=Table[GraphData[{"DoubleCone",n},"MinimalEdgeCutCount"],{n,3,20}]

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindSequenceFunction[DeleteMissing@seq,n-2]//Factor

gf=x FindGeneratingFunction[DeleteMissing@seq,x]

Simplify[SeriesCoefficient[gf,{x,0,n}],n>0]//Factor

MinimalEdgeCutPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"MinimalEdgeCutPolynomial"],{n,3,20}]/.f_Function:>f[x])//Column

CoefficientList[DeleteMissing@poly,x]

FindLinearRecurrence[DeleteMissing@poly]//Head//Timing

MinimalTotalDominatingSetCount

seq=Table[GraphData[{"DoubleCone",n},"MinimalTotalDominatingSetCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n]//Head//Timing

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

MinimalTotalDominationPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"MinimalTotalDominationPolynomial"],{n,3,20}]/.f_Function:>f[x])//Column

coef=Factor/@FindLinearRecurrence[DeleteMissing@poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

MinimalVertexCoverCount

seq=Table[GraphData[{"DoubleCone",n},"MinimalVertexCoverCount"],{n,3,20}]

gf=(x^3)FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>2]

MinimalVertexCoverPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"MinimalVertexCoverPolynomial"],{n,3,20}]/.f_Function:>f[x])//Column

MinimalVertexCutCount

Inferred for n > 7:

seq=Table[GraphData[{"DoubleCone",n},"MinimalVertexCutCount"],{n,3,20}]

MinimalVertexCutPolynomial

Inferred for n > 7:

(poly=Table[GraphData[{"DoubleCone",n},"MinimalVertexCutPolynomial"],{n,3,20}]/.f_Function:>f[x])

MinimumConnectedDominatingSetCount

seq=Table[GraphData[{"DoubleCone",n},"MinimumConnectedDominatingSetCount"],{n,3,20}]

MinimumCoveringsByMaximalCliquesCount

Inferred for n > 12:

seq=Table[GraphData[{"DoubleCone",n},"MinimumCoveringsByMaximalCliquesCount"],{n,3,20}]

Table[Piecewise[{{4,Mod[n,2]==0},{1,n==3}},n^2],{n,3,20}]

MinimumCyclicEdgeCutCount

Inferred for n > 6:

seq=Table[GraphData[{"DoubleCone",n},"MinimumCyclicEdgeCutCount"],{n,3,20}]

MinimumDistinguishingLabelingCount

seq=Table[GraphData[{"DoubleCone",n},"MinimumDistinguishingLabelingCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n]//Head//Timing

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

MinimumDominatingSetCount

Inferred for n > 9:

seq=Table[GraphData[{"DoubleCone",n},"MinimumDominatingSetCount"],{n,3,20}]

MinimumEdgeCoverCount

seq=Table[GraphData[{"DoubleCone",n},"MinimumEdgeCoverCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n]//Head//Timing

FindLinearRecurrence[DeleteMissing@seq]//Head//Timing

FindGeneratingFunction[DeleteMissing@seq,x]//Head//Timing

MinimumEdgeCutCount

Inferred for n > 14:

seq=Table[GraphData[{"DoubleCone",n},"MinimumEdgeCutCount"],{n,3,20}]

gf=(x^3)FindGeneratingFunction[DeleteMissing@seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>2]

MinimumLeafNumber

seq=Table[GraphData[{"DoubleCone",n},"MinimumLeafNumber"],{n,3,20}]

MinimumPathCoveringCount

seq=Table[GraphData[{"DoubleCone",n},"MinimumPathCoveringCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

MinimumTotalDominatingSetCount

Inferred for n > 9:

seq=Table[GraphData[{"DoubleCone",n},"MinimumTotalDominatingSetCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n-2]//Factor

MinimumVertexCoverCount

seq=Table[GraphData[{"DoubleCone",n},"MinimumVertexCoverCount"],{n,3,20}]

MinimumVertexCutCount

seq=Table[GraphData[{"DoubleCone",n},"MinimumVertexCutCount"],{n,3,20}]

MinimumVertexDegree

seq=Table[GraphData[{"DoubleCone",n},"MinimumVertexDegree"],{n,3,20}]

MolecularTopologicalIndex

seq=Table[GraphData[{"DoubleCone",n},"MolecularTopologicalIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

Nonhamiltonian

Table[GraphData[{"DoubleCone",n},"Nonhamiltonian"],{n,3,20}]

NoPerfectMatching

Table[GraphData[{"DoubleCone",n},"NoPerfectMatching"],{n,3,20}]

OddChordlessCycleCount

seq=Table[GraphData[{"DoubleCone",n},"OddChordlessCycleCount"],{n,3,20}]

OddChordlessCyclePolynomial

poly=Table[GraphData[{"DoubleCone",n},"OddChordlessCyclePolynomial"],{n,3,20}]/.f_Function:>f[x]

Outerplanar

Table[GraphData[{"DoubleCone",n},"Outerplanar"],{n,3,20}]

PageRankCentralities

PathCount

seq=Table[GraphData[{"DoubleCone",n},"PathCount"],{n,3,20}]

FindLinearRecurrence[DeleteMissing@seq]

FindSequenceFunction[DeleteMissing@seq,n]//Factor

gf=x FindGeneratingFunction[DeleteMissing@seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>0]

PathCoveringNumber

seq=Table[GraphData[{"DoubleCone",n},"PathCoveringNumber"],{n,3,20}]

PathPolynomial

(poly=Factor[Table[GraphData[{"DoubleCone",n},"PathPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

FindLinearRecurrence[DeleteMissing@poly]//Head//Timing

PentagonCount

seq=Table[GraphData[{"DoubleCone",n},"PentagonCount"],{n,3,20}]

gf=(x^3)FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>2]

Perfect

seq=Table[GraphData[{"DoubleCone",n},"Perfect"],{n,3,20}]

Table[Piecewise[{{True,n==3||Mod[n,2]==0}},False],{n,3,20}]==seq

Table[GraphData[{"DoubleCone",n},"OddChordlessCycleCount"],{n,3,20}]

Table[GraphData[{"DoubleCone",n},"ComplementOddChordlessCycleCount"],{n,3,20}]

gc=GraphComplement[GraphData[{"DoubleCone",5}],VertexLabels->Automatic]

cocc=GraphData[{"DoubleCone",5},"ComplementOddChordlessCycles"]

HighlightGraph[gc,UndirectedEdge@@@Partition[#,2,1,1]]&/@cocc

FindOddChordlessCycle[gc,All,Debug->True]

PerfectMatching

Table[GraphData[{"DoubleCone",n},"PerfectMatching"],{n,3,20}]

Periphery

seq=Table[GraphData[{"DoubleCone",n},"Periphery"],{n,3,20}]

Planar

Table[GraphData[{"DoubleCone",n},"Planar"],{n,3,20}]

ProjectivePlaneCrossingNumber

seq=Table[GraphData[{"DoubleCone",n},"ProjectivePlaneCrossingNumber"],{n,3,20}]

Pseudoarboricity

seq=Table[GraphData[{"DoubleCone",n},"Pseudoarboricity"],{n,3,20}]

QChromaticPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"QChromaticPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x])//Column

RadialityCentralities

Tally/@Table[GraphData[{"DoubleCone",n},"RadialityCentralities"],{n,3,20}]//Column

RadioLabelingCount

seq=Table[GraphData[{"DoubleCone",n},"RadioLabelingCount"],{n,3,20}]

RadioNumber

seq=Table[GraphData[{"DoubleCone",n},"RadioNumber"],{n,3,20}]

Radius

seq=Table[GraphData[{"DoubleCone",n},"Radius"],{n,3,20}]

Rank

seq=Table[GraphData[{"DoubleCone",n},"Rank"],{n,3,20}]

RankPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"RankPolynomial"],{n,k0=4,20}]/.f_Function:>Factor@f[x,y])//Column

coef=Factor/@FindLinearRecurrence[poly]

RectilinearCrossingNumber

seq=Table[GraphData[{"DoubleCone",n},"RectilinearCrossingNumber"],{n,3,20}]

Regular

Table[GraphData[{"DoubleCone",n},"Regular"],{n,3,20}]

RegularParameters

seq=Table[GraphData[{"DoubleCone",n},"RegularParameters"],{n,3,20}]

ReliabilityPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"ReliabilityPolynomial"],{n,k0=3,20}]/.f_Function:>Factor@f[x])//Column

coef=Factor/@FindLinearRecurrence[poly]

ResistanceMatrix

MatrixForm/@Table[GraphData[{"DoubleCone",n},"ResistanceMatrix"],{n,3,6}]

ScrambleNumber

seq=Table[GraphData[{"DoubleCone",n},"ScrambleNumber"],{n,3,20}]

ShannonCapacity

seq=Table[GraphData[{"DoubleCone",n},"ShannonCapacity"],{n,3,20}]

SigmaPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"SigmaPolynomial"],{n,k0=3,20}]/.f_Function:>Factor@f[x])//Column

coef=Factor/@FindLinearRecurrence[poly]

coef=Factor/@FindPolynomialRecurrence[poly,6]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Table[n x(3x+2)-2x^2+1,{n,10}]

FullSimplify[%-poly]

Singlecross

Table[GraphData[{"DoubleCone",n},"Singlecross"],{n,3,20}]

Skewness

seq=Table[GraphData[{"DoubleCone",n},"Skewness"],{n,3,20}]

SpanningTreeCount

seq=Table[GraphData[{"DoubleCone",n},"SpanningTreeCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

SpectralRadius

seq=Table[GraphData[{"DoubleCone",n},"SpectralRadius"],{n,3,20}]

SquareCount

seq=Table[GraphData[{"DoubleCone",n},"SquareCount"],{n,3,20}]

SquareFree

Table[GraphData[{"DoubleCone",n},"SquareFree"],{n,3,20}]

StabilityIndex

seq=Table[GraphData[{"DoubleCone",n},"StabilityIndex"],{n,3,20}]

FindGeneratingFunction[seq,x]//Head//Timing

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>2]

StarArboricity

seq=Table[GraphData[{"DoubleCone",n},"StarArboricity"],{n,3,20}]

StatusCentralities

seq=Table[GraphData[{"DoubleCone",n},"StatusCentralities"],{n,3,20}]

Strength

Inferred for n > 6:

seq=Table[GraphData[{"DoubleCone",n},"Strength"],{n,3,20}]

StronglyPerfect

Table[GraphData[{"DoubleCone",n},"StronglyPerfect"],{n,3,20}]

StronglyRegular

Table[GraphData[{"DoubleCone",n},"StronglyRegular"],{n,3,20}]

Symmetric

Table[GraphData[{"DoubleCone",n},"Symmetric"],{n,3,20}]

SymmetricallyDistinctVertexPairCount

seq=Table[GraphData[{"DoubleCone",n},"SymmetricallyDistinctVertexPairCount"],{n,3,20}]

SymmetricallyDistinctVertexPairSignature

(seq=Table[GraphData[{"DoubleCone",n},"SymmetricallyDistinctVertexPairSignature"],{n,3,20}])//Column

Thickness

seq=Table[GraphData[{"DoubleCone",n},"Thickness"],{n,3,20}]

TopologicalIndex

seq=Table[GraphData[{"DoubleCone",n},"TopologicalIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

ToroidalCrossingNumber

seq=Table[GraphData[{"DoubleCone",n},"ToroidalCrossingNumber"],{n,3,20}]

TotalDominatingSetCount

seq=Table[GraphData[{"DoubleCone",n},"TotalDominatingSetCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n-2]//Head

TotalDominationNumber

seq=Table[GraphData[{"DoubleCone",n},"TotalDominationNumber"],{n,3,20}]

TotalDominationPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"TotalDominationPolynomial"],{n,3,20}]/. f_Function:>f[x])//Column

Toughness

seq=Table[GraphData[{"DoubleCone",n},"Toughness"],{n,3,20}]

Traceable

Table[GraphData[{"DoubleCone",n},"Traceable"],{n,3,20}]

TreeDepth

seq=Table[GraphData[{"DoubleCone",n},"TreeDepth"],{n,3,20}]

TreeNumber

seq=Table[GraphData[{"DoubleCone",n},"TreeNumber"],{n,3,20}]

Treewidth

seq=Table[GraphData[{"DoubleCone",n},"Treewidth"],{n,3,20}]

Triameter

seq=Table[GraphData[{"DoubleCone",n},"Triameter"],{n,3,20}]

TriangleCount

seq=Table[GraphData[{"DoubleCone",n},"TriangleCount"],{n,3,20}]

TriangleFree

Table[GraphData[{"DoubleCone",n},"TriangleFree"],{n,3,20}]

TuttePolynomial

(Table[GraphData[{"DoubleCone",n},"TuttePolynomial"],{n,3,20}]/.f_Function:>f[x,y])

Unicyclic

seq=Table[GraphData[{"DoubleCone",n},"Unicyclic"],{n,3,20}]

UniquelyColorable

seq=Table[GraphData[{"DoubleCone",n},"UniquelyColorable"],{n,3,20}]

UniquelyPancyclic

seq=Table[GraphData[{"DoubleCone",n},"UniquelyPancyclic"],{n,3,20}]

UnitDistance

seq=Table[GraphData[{"DoubleCone",n},"UnitDistance"],{n,3,20}]

Table[n==6,{n,3,20}]==seq

UnitDistanceGraphQ[DoubleConeGraph[6],Debug->True]

GraphData[{"DoubleCone",6},"Graph","UnitDistance"]

UnitDistanceGraphQ[DoubleConeGraph[20],Debug->True]

Do[Print[{n,UnitDistanceGraphQ[DoubleConeGraph[n]]//Timing}],{n,3,20}]

UpperDominationNumber

Inferred for n > 11:

seq=Table[GraphData[{"DoubleCone",n},"UpperDominationNumber"],{n,3,20}]

Table[2Floor[n/2],{n,3,20}]

UpperIrredundanceNumber

Inferred for n > 12:

seq=Table[GraphData[{"DoubleCone",n},"UpperIrredundanceNumber"],{n,3,20}]

Table[2Floor[n/2],{n,3,20}]

VertexConnectivity

Table[GraphData[{"DoubleCone",n},"VertexConnectivity"],{n,3,20}]

VertexCount

seq=Table[GraphData[{"DoubleCone",n},"VertexCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

VertexCoverCount

seq=Table[GraphData[{"DoubleCone",n},"VertexCoverCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

VertexCoverNumber

seq=Table[GraphData[{"DoubleCone",n},"VertexCoverNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

VertexCoverPolynomial

(poly=Table[GraphData[{"DoubleCone",n},"VertexCoverPolynomial"],{n,k0=3,20}]/.f_Function:>f[x])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

VertexCutCount

seq=Table[GraphData[{"DoubleCone",n},"VertexCutCount"],{n,3,20}]

VertexDegrees

Tally/@Table[GraphData[{"DoubleCone",n},"VertexDegrees"],{n,3,20}]//Column

VertexTransitive

seq=Table[GraphData[{"DoubleCone",n},"VertexTransitive"],{n,3,20}]

WienerIndex

seq=Table[GraphData[{"DoubleCone",n},"WienerIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

WienerSumIndex

seq=Table[GraphData[{"DoubleCone",n},"WienerSumIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Head//Timing

GraphData

GraphDataClassString

GraphDataClassString["DoubleCone"]

GraphDataString

file=OpenAppend["~/double-cone.m"]

WriteString[file,GraphDataString[
DoubleConeGraph[#],
"StandardName"->{"DoubleCone",#},
"Name"->ToString[#]<>"\[Hyphen]double cone graph",
"Classes"->{"DoubleCone"},
"NotationRules"->{"DoubleCone"->#},
"Information"->"DoubleCone",
TimeConstraint->10,
"Skip"->{"Arboricity","IdiosyncraticPolynomial","MinimumDistinguishingLabelings","ConnectedInducedSubgraphPolynomial","ConnectedInducedSubgraphs"}
]]&/@Range[19,20];

Close[file]