bridge/class-master/depend/pari/src/basemath/elliptic.c
/* update Q_MINIMALMODEL entry in E, but don't update type-specific data on
 * ellminimalmodel(E) */
update Q_MINIMALMODEL entry in E, but don't update type-specific data on
ellminimalmodel(E)
update Q_MINIMALMODEL entry in E but don ' t update type - specific data on ellminimalmodel ( E )
static GEN
ellminimalmodel_i(GEN E, GEN *ptv)
{
  GEN S, y, e, v, v0, u, DP;
  ellmin_t M;
  if ((S = obj_check(E, Q_MINIMALMODEL)))
  {
    if (lg(S) != 2)
    {
      E = gel(S,3);
      v = gel(S,2);
    }
    else
      v = init_ch();
    if (ptv) *ptv = v;
    return gcopy(E);
  }
  e = ellintegralmodel_i(E, &v0);
  u = get_u(e, &DP);
  min_set_all(&M, e, u);
  v = min_get_v(&M, e);
  y = min_to_ell(&M, e);
  if (v0) { gcomposev(&v0, v); v = v0; }
  if (is_trivial_change(v))
  {
    v = init_ch();
    S = mkvec(DP);
  }
  else
    S = mkvec3(DP, v, y);
  obj_insert(E, Q_MINIMALMODEL, S);
  if (ptv) *ptv = v; return y;
}
static GEN ellminimalmodel_i ( GEN E , GEN * ptv ) { GEN S , y , e , v , v0 , u , DP ; ellmin_t M ; if ( ( S = obj_check ( E , Q_MINIMALMODEL ) ) ) { if ( lg ( S ) != 2 ) { E = gel ( S , 3 ) ; v = gel ( S , 2 ) ; } else v = init_ch ( ) ; if ( ptv ) * ptv = v ; return gcopy ( E ) ; } e = ellintegralmodel_i ( E , & v0 ) ; u = get_u ( e , & DP ) ; min_set_all ( & M , e , u ) ; v = min_get_v ( & M , e ) ; y = min_to_ell ( & M , e ) ; if ( v0 ) { gcomposev ( & v0 , v ) ; v = v0 ; } if ( is_trivial_change ( v ) ) { v = init_ch ( ) ; S = mkvec ( DP ) ; } else S = mkvec3 ( DP , v , y ) ; obj_insert ( E , Q_MINIMALMODEL , S ) ; if ( ptv ) * ptv = v ; return y ; }
update Q_MINIMALMODEL entry in E, but don't update type-specific data on
 ellminimalmodel(E)
update Q_MINIMALMODEL entry in E but don ' t update type - specific data on ellminimalmodel ( E )