I wish to do arithmetic on elements contained within an integer subring of a cyclotomic number field commonly used in ring-LWE. As an example, take the cyclotomic field created by adjoining \zeta_8, an 8th root of unity to the rational numbers, i.e., QQ(\zeta_8). This field is isomorphic to the quotient: QQ[X] / <x^4 + 1>. I wish to define elements in an integer subring of this field modulo an odd integer p, i.e., I wish to define elements in ZZ_p[X] / <x^4 + 1>. What is the appropriate class to use for this? I was thinking it may be ZZ_pE. So I tried instantiating this and using the init() method in this class to to set the minimal polynomial for this extension (x^4 + 1). Having done this, I'm not sure how to proceed. Is this the right approach? A code sample for instantiating elements and performing arithmetic in this ring would be appreciated.
I wish to do arithmetic on elements contained within an integer subring of a cyclotomic number field commonly used in ring-LWE. As an example, take the cyclotomic field created by adjoining \zeta_8, an 8th root of unity to the rational numbers, i.e., QQ(\zeta_8). This field is isomorphic to the quotient: QQ[X] / <x^4 + 1>. I wish to define elements in an integer subring of this field modulo an odd integer p, i.e., I wish to define elements in ZZ_p[X] / <x^4 + 1>. What is the appropriate class to use for this? I was thinking it may be ZZ_pE. So I tried instantiating this and using the init() method in this class to to set the minimal polynomial for this extension (x^4 + 1). Having done this, I'm not sure how to proceed. Is this the right approach? A code sample for instantiating elements and performing arithmetic in this ring would be appreciated.