Constructions of Optimal Optical Orthogonal Codes with Weights Set 
 
 
 5,7
 
 
 via Cyclic Packing

<jats:p>Double-weight optical orthogonal codes are variable-weight optical orthogonal codes (OOCs), which have been widely applied in optical networks and systems. Some works have been devoted to optimal <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M2"> <mfenced open="(" close=")" separators="|"> <mrow> <mi>n</mi> <mo>,</mo> <mi>W</mi> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mi>Q</mi> </mrow> </mfenced> </math> </jats:inline-formula>-OOCs with <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M3"> <mi mathvariant="normal">max</mi> <mfenced open="{" close="}" separators="|"> <mrow> <mi>w</mi> <mo>:</mo> <mi>w</mi> <mo>∈</mo> <mi>W</mi> </mrow> </mfenced> <mo>≤</mo> <mn>6</mn> </math> </jats:inline-formula>. So far, there is no explicit construction of optimal <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M4"> <mfenced open="(" close=")" separators="|"> <mrow> <mi>n</mi> <mo>,</mo> <mi>W</mi> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mi>Q</mi> </mrow> </mfenced> </math> </jats:inline-formula>-OOCs with <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M5"> <mi>W</mi> <mo>=</mo> <mfenced open="{" close="}" separators="|"> <mrow> <mn>5,7</mn> </mrow> </mfenced> </math> </jats:inline-formula>. It is known that heavier-weight codewords have better code performance than lighter-weight codewords. So, in this paper, we use cyclic packing to construct two infinite classes of optimal OOCs with weights set <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M6"> <mfenced open="{" close="}" separators="|"> <mrow> <mn>5,7</mn> </mrow> </mfenced> </math> </jats:inline-formula> explicitly, for any prime <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M7"> <mi>p</mi> <mo>≡</mo> <mn>3</mn> <mfenced open="(" close=")" separators="|"> <mrow> <mi mathvariant="normal">mod</mi> <mn>4</mn> </mrow> </mfenced> </math> </jats:inline-formula> and <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M8"> <mi>p</mi> <mo>≥</mo> <mn>7</mn> </math> </jats:inline-formula>. In addition, for <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M9"> <mn>1</mn> <mo>≤</mo> <mi>t</mi> <mo><</mo> <mrow> <mi>p</mi> <mo>−</mo> <mn>1</mn> </mrow> <mo>/</mo> <mn>2</mn> </math> </jats:inline-formula>, by breaking <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M10"> <mi>t</mi> </math> </jats:inline-formula> blocks of size 7 into 3 of <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M11"> <mfenced open="(" close=")" separators="|"> <mrow> <mn>31</mn> <mi>p</mi> <mo>,</mo> <mfenced open="{" close="}" separators="|"> <mrow> <mn>5,7</mn> </mrow> </mfenced> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mfenced open="{" close="}" separators="|"> <mrow> <mrow> <mn>1</mn> <mo>/</mo> <mn>2</mn> </mrow> <mo>,</mo> <mrow> <mn>1</mn> <mo>/</mo> <mn>2</mn> </mrow> </mrow> </mfenced> </mrow> </mfenced> </math> </jats:inline-formula>-OOCs and <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M12"> <mfenced open="(" close=")" separators="|"> <mrow> <mn>41</mn> <mi>p</mi> <mo>,</mo> <mfenced open="{" close="}" separators="|"> <mrow> <mn>5,7</mn> </mrow> </mfenced> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mfenced open="{" close="}" separators="|"> <mrow> <mrow> <mn>2</mn> <mo>/</mo> <mn>3</mn> </mrow> <mo>,</mo> <mrow> <mn>1</mn> <mo>/</mo> <mn>3</mn> </mrow> </mrow> </mfenced> </mrow> </mfenced> </math> </jats:inline-formula>-OOCs, we obtain new infinite classes of optimal <jats:inline-formula> <math xmlns="http://www.w3. org/1998/Math/MathML" id="M13"> <mfenced open="(" close=")" separators="|"> <mrow> <mn>31</mn> <mi>p</mi> <mo>,</mo> <mfenced open="{" close="}" separators="|"> <mrow> <mn>3,5,7</mn> </mrow> </mfenced> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mfenced open="{" close="}" separators="|"> <mrow> <mrow> <mrow> <mn>7</mn> <mi>t</mi> </mrow> <mo>/</mo> <mrow> <mi>p</mi> <mo>−</mo> <mn>1</mn> <mo>+</mo> <mn>6</mn> <mi>t</mi> </mrow> </mrow> <mo>,</mo> <mrow> <mrow> <mi>p</mi> <mo>−</mo> <mn>1</mn>