(define-cpp-data-slot-setter _cl_modint_mulops mul)
(define-cpp-data-slot-setter _cl_modint_mulops square)
(define-cpp-data-slot-setter _cl_modint_mulops expt_pos)
(define-cpp-type |_cl_MI(*)(cl_heap_modint_ring*,const_cl_MI&,const-cl_I&)| function-type
  signature: ((cl_heap_modint_ring* const_cl_MI& const-cl_I&) _cl_MI)
  cpp-type-dcl: "_cl_MI (*%s)(cl_heap_modint_ring *, const _cl_MI &, const cl_I &)"
  id: |_cl_MI*(*)(cl_heap_modint_ring**,_cl_MI**,cl_I**)|)
(define-cpp-data-slot-setter _cl_modint_mulops recip)
(define-cpp-type |cl_MI_x(*)(cl_heap_modint_ring*,const_cl_MI&)| function-type
  signature: ((cl_heap_modint_ring* const_cl_MI&) cl_MI_x)
  cpp-type-dcl: "cl_MI_x (*%s)(cl_heap_modint_ring *, const _cl_MI &)"
  id: |cl_MI_x*(*)(cl_heap_modint_ring**,_cl_MI**)|)
(define-cpp-data-slot-setter _cl_modint_mulops div)
(define-cpp-type |cl_MI_x(*)(cl_heap_modint_ring*,const_cl_MI&,const_cl_MI&)| function-type
  signature: ((cl_heap_modint_ring* const_cl_MI& const_cl_MI&) cl_MI_x)
  cpp-type-dcl: "cl_MI_x (*%s)(cl_heap_modint_ring *, const _cl_MI &, const _cl_MI &)"
  id: |cl_MI_x*(*)(cl_heap_modint_ring**,_cl_MI**,_cl_MI**)|)
(define-cpp-data-slot-setter _cl_modint_mulops expt)
(define-cpp-type |cl_MI_x(*)(cl_heap_modint_ring*,const_cl_MI&,const-cl_I&)| function-type
  signature: ((cl_heap_modint_ring* const_cl_MI& const-cl_I&) cl_MI_x)
  cpp-type-dcl: "cl_MI_x (*%s)(cl_heap_modint_ring *, const _cl_MI &, const cl_I &)"
  id: |cl_MI_x*(*)(cl_heap_modint_ring**,_cl_MI**,cl_I**)|)
(define-cpp-data-slot-setter _cl_modint_mulops reduce_modulo)
(define-cpp-type |cl_I(*)(cl_heap_modint_ring*,const-cl_I&)| function-type
  signature: ((cl_heap_modint_ring* const-cl_I&) cl_I)
  cpp-type-dcl: "cl_I (*%s)(cl_heap_modint_ring *, const cl_I &)"
  id: |cl_I*(*)(cl_heap_modint_ring**,cl_I**)|)
(define-cpp-data-slot-setter _cl_modint_mulops retract)
(define-cpp-type |cl_I(*)(cl_heap_modint_ring*,const_cl_MI&)| function-type
  signature: ((cl_heap_modint_ring* const_cl_MI&) cl_I)
  cpp-type-dcl: "cl_I (*%s)(cl_heap_modint_ring *, const _cl_MI &)"
  id: |cl_I*(*)(cl_heap_modint_ring**,_cl_MI**)|)
(define-cpp-type _cl_modint_mulops& static
  id: _cl_modint_mulops*
  class: _cl_modint_mulops
  cpp-type-dcl: "_cl_modint_mulops &%s"
  cast: "((_cl_modint_mulops &)(%s))"
  arg-type: "_cl_modint_mulops *%s"
  arg-converter: "*(%s)"
  res-type: "_cl_modint_mulops *%s"
  res-converter: "&%s"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(_cl_modint_mulops *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type _cl_modint_mulops static
  id: _cl_modint_mulops*
  class: _cl_modint_mulops
  cpp-type-dcl: "_cl_modint_mulops %s"
  cast: "((_cl_modint_mulops)(%s))"
  arg-type: "_cl_modint_mulops *%s"
  arg-converter: "*(%s)"
  res-type: "_cl_modint_mulops *%s"
  res-converter: "new _cl_modint_mulops (%s)"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(_cl_modint_mulops *)(%s)"
  c-callback-arg-converter: none
  c-callback-res-converter: none
  c-callback-arg-type: "void *%s")
(define-cpp-type _cl_modint_mulops* static
  id: _cl_modint_mulops*
  class: _cl_modint_mulops
  cpp-type-dcl: "_cl_modint_mulops *%s"
  cast: "((_cl_modint_mulops *)(%s))"
  callback-res-converter: "(_cl_modint_mulops *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-data-slot-setter sqrt_mod_p_t condition)
(define-cpp-data-slot-setter sqrt_mod_p_t solutions)
(define-cpp-data-slot-setter sqrt_mod_p_t factor)
(define-cpp-type cl_MI[] static
  id: cl_MI*
  class: cl_MI
  cpp-type-dcl: "cl_MI *%s"
  cast: "((cl_MI *)(%s))"
  arg-type: "cl_MI *%s"
  res-type: "cl_MI *%s"
  res-returner: ()
  callback-res-converter: "(cl_MI *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type sqrt_mod_p_t static
  id: sqrt_mod_p_t*
  class: sqrt_mod_p_t
  cpp-type-dcl: "sqrt_mod_p_t %s"
  cast: "((sqrt_mod_p_t)(%s))"
  arg-type: "sqrt_mod_p_t *%s"
  arg-converter: "*(%s)"
  res-type: "sqrt_mod_p_t *%s"
  res-converter: "new sqrt_mod_p_t (%s)"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(sqrt_mod_p_t *)(%s)"
  c-callback-arg-converter: none
  c-callback-res-converter: none
  c-callback-arg-type: "void *%s")
(define-cpp-type sqrt_mod_p_t& static
  id: sqrt_mod_p_t*
  class: sqrt_mod_p_t
  cpp-type-dcl: "sqrt_mod_p_t &%s"
  cast: "((sqrt_mod_p_t &)(%s))"
  arg-type: "sqrt_mod_p_t *%s"
  arg-converter: "*(%s)"
  res-type: "sqrt_mod_p_t *%s"
  res-converter: "&%s"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(sqrt_mod_p_t *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type sqrt_mod_p_t* static
  id: sqrt_mod_p_t*
  class: sqrt_mod_p_t
  cpp-type-dcl: "sqrt_mod_p_t *%s"
  cast: "((sqrt_mod_p_t *)(%s))"
  callback-res-converter: "(sqrt_mod_p_t *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-data-slot-setter cornacchia_t condition)
(define-cpp-data-slot-setter cornacchia_t solutions)
(define-cpp-data-slot-setter cornacchia_t solution_x)
(define-cpp-data-slot-setter cornacchia_t solution_y)
(define-cpp-type cornacchia_t& static
  id: cornacchia_t*
  class: cornacchia_t
  cpp-type-dcl: "cornacchia_t &%s"
  cast: "((cornacchia_t &)(%s))"
  arg-type: "cornacchia_t *%s"
  arg-converter: "*(%s)"
  res-type: "cornacchia_t *%s"
  res-converter: "&%s"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(cornacchia_t *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type cornacchia_t static
  id: cornacchia_t*
  class: cornacchia_t
  cpp-type-dcl: "cornacchia_t %s"
  cast: "((cornacchia_t)(%s))"
  arg-type: "cornacchia_t *%s"
  arg-converter: "*(%s)"
  res-type: "cornacchia_t *%s"
  res-converter: "new cornacchia_t (%s)"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(cornacchia_t *)(%s)"
  c-callback-arg-converter: none
  c-callback-res-converter: none
  c-callback-arg-type: "void *%s")
(define-cpp-type cornacchia_t* static
  id: cornacchia_t*
  class: cornacchia_t
  cpp-type-dcl: "cornacchia_t *%s"
  cast: "((cornacchia_t *)(%s))"
  callback-res-converter: "(cornacchia_t *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type const-cl_V_any& static
  id: cl_V_any*
  class: cl_V_any
  cpp-type-dcl: "const cl_V_any &%s"
  cast: "((const cl_V_any &)(%s))"
  arg-type: "const cl_V_any *%s"
  arg-converter: "*(%s)"
  res-type: "const cl_V_any *%s"
  res-converter: "&%s"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(const cl_V_any *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type cl_V_any& static
  id: cl_V_any*
  class: cl_V_any
  cpp-type-dcl: "cl_V_any &%s"
  cast: "((cl_V_any &)(%s))"
  arg-type: "cl_V_any *%s"
  arg-converter: "*(%s)"
  res-type: "cl_V_any *%s"
  res-converter: "&%s"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(cl_V_any *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type cl_V_any static
  id: cl_V_any*
  class: cl_V_any
  cpp-type-dcl: "cl_V_any %s"
  cast: "((cl_V_any)(%s))"
  arg-type: "cl_V_any *%s"
  arg-converter: "*(%s)"
  res-type: "cl_V_any *%s"
  res-converter: "new cl_V_any (%s)"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(cl_V_any *)(%s)"
  c-callback-arg-converter: none
  c-callback-res-converter: none
  c-callback-arg-type: "void *%s")
(define-cpp-type cl_V_any* static
  id: cl_V_any*
  class: cl_V_any
  cpp-type-dcl: "cl_V_any *%s"
  cast: "((cl_V_any *)(%s))"
  callback-res-converter: "(cl_V_any *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type const-cl_univpoly_ring& static
  id: cl_univpoly_ring*
  class: cl_univpoly_ring
  cpp-type-dcl: "const cl_univpoly_ring &%s"
  cast: "((const cl_univpoly_ring &)(%s))"
  arg-type: "const cl_univpoly_ring *%s"
  arg-converter: "*(%s)"
  res-type: "const cl_univpoly_ring *%s"
  res-converter: "&%s"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(const cl_univpoly_ring *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type cl_univpoly_ring& static
  id: cl_univpoly_ring*
  class: cl_univpoly_ring
  cpp-type-dcl: "cl_univpoly_ring &%s"
  cast: "((cl_univpoly_ring &)(%s))"
  arg-type: "cl_univpoly_ring *%s"
  arg-converter: "*(%s)"
  res-type: "cl_univpoly_ring *%s"
  res-converter: "&%s"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(cl_univpoly_ring *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type cl_heap_univpoly_ring* static
  id: cl_heap_univpoly_ring*
  class: cl_heap_univpoly_ring
  cpp-type-dcl: "cl_heap_univpoly_ring *%s"
  cast: "((cl_heap_univpoly_ring *)(%s))"
  callback-res-converter: "(cl_heap_univpoly_ring *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type cl_univpoly_ring static
  id: cl_univpoly_ring*
  class: cl_univpoly_ring
  cpp-type-dcl: "cl_univpoly_ring %s"
  cast: "((cl_univpoly_ring)(%s))"
  arg-type: "cl_univpoly_ring *%s"
  arg-converter: "*(%s)"
  res-type: "cl_univpoly_ring *%s"
  res-converter: "new cl_univpoly_ring (%s)"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(cl_univpoly_ring *)(%s)"
  c-callback-arg-converter: none
  c-callback-res-converter: none
  c-callback-arg-type: "void *%s")
(define-cpp-type cl_univpoly_ring* static
  id: cl_univpoly_ring*
  class: cl_univpoly_ring
  cpp-type-dcl: "cl_univpoly_ring *%s"
  cast: "((cl_univpoly_ring *)(%s))"
  callback-res-converter: "(cl_univpoly_ring *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-data-slot-setter _cl_UP rep)
(define-cpp-type _cl_UP* static
  id: _cl_UP*
  class: _cl_UP
  cpp-type-dcl: "_cl_UP *%s"
  cast: "((_cl_UP *)(%s))"
  callback-res-converter: "(_cl_UP *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type _cl_UP static
  id: _cl_UP*
  class: _cl_UP
  cpp-type-dcl: "_cl_UP %s"
  cast: "((_cl_UP)(%s))"
  arg-type: "_cl_UP *%s"
  arg-converter: "*(%s)"
  res-type: "_cl_UP *%s"
  res-converter: "new _cl_UP (%s)"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(_cl_UP *)(%s)"
  c-callback-arg-converter: none
  c-callback-res-converter: none
  c-callback-arg-type: "void *%s")
(define-cpp-type const-cl_heap_univpoly_ring* static
  id: cl_heap_univpoly_ring*
  class: cl_heap_univpoly_ring
  cpp-type-dcl: "const cl_heap_univpoly_ring *%s"
  cast: "((const cl_heap_univpoly_ring *)(%s))"
  callback-res-converter: "(const cl_heap_univpoly_ring *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type _cl_UP& static
  id: _cl_UP*
  class: _cl_UP
  cpp-type-dcl: "_cl_UP &%s"
  cast: "((_cl_UP &)(%s))"
  arg-type: "_cl_UP *%s"
  arg-converter: "*(%s)"
  res-type: "_cl_UP *%s"
  res-converter: "&%s"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(_cl_UP *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type cl_UP* static
  id: cl_UP*
  class: cl_UP
  cpp-type-dcl: "cl_UP *%s"
  cast: "((cl_UP *)(%s))"
  callback-res-converter: "(cl_UP *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type cl_UP static
  id: cl_UP*
  class: cl_UP
  cpp-type-dcl: "cl_UP %s"
  cast: "((cl_UP)(%s))"
  arg-type: "cl_UP *%s"
  arg-converter: "*(%s)"
  res-type: "cl_UP *%s"
  res-converter: "new cl_UP (%s)"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(cl_UP *)(%s)"
  c-callback-arg-converter: none
  c-callback-res-converter: none
  c-callback-arg-type: "void *%s")
(define-cpp-type const_cl_UP& static
  id: _cl_UP*
  class: _cl_UP
  cpp-type-dcl: "const _cl_UP &%s"
  cast: "((const _cl_UP &)(%s))"
  arg-type: "const _cl_UP *%s"
  arg-converter: "*(%s)"
  res-type: "const _cl_UP *%s"
  res-converter: "&%s"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(const _cl_UP *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-type cl_UP& static
  id: cl_UP*
  class: cl_UP
  cpp-type-dcl: "cl_UP &%s"
  cast: "((cl_UP &)(%s))"
  arg-type: "cl_UP *%s"
  arg-converter: "*(%s)"
  res-type: "cl_UP *%s"
  res-converter: "&%s"
  callback-arg-converter: "&%s"
  callback-res-converter: "*(cl_UP *)(%s)"
  c-callback-arg-type: "void *%s")
(define-cpp-data-slot-setter _cl_univpoly_setops fprint)
