diff options
| author | J08nY | 2017-02-16 21:31:50 +0100 |
|---|---|---|
| committer | J08nY | 2017-02-16 21:31:50 +0100 |
| commit | 7ae0d913d7bbfb286aaa9a5c9984e9bd7eb81df2 (patch) | |
| tree | b0f2d97310b9d0a3e4ba2e0a1cfbcf31d608383e /src/math/curve.c | |
| parent | 5d9d12811441930169b0517318dcf21c51b72e2d (diff) | |
| download | ecgen-7ae0d913d7bbfb286aaa9a5c9984e9bd7eb81df2.tar.gz ecgen-7ae0d913d7bbfb286aaa9a5c9984e9bd7eb81df2.tar.zst ecgen-7ae0d913d7bbfb286aaa9a5c9984e9bd7eb81df2.zip | |
Diffstat (limited to 'src/math/curve.c')
| -rw-r--r-- | src/math/curve.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/src/math/curve.c b/src/math/curve.c index 42844ff..3892704 100644 --- a/src/math/curve.c +++ b/src/math/curve.c @@ -35,18 +35,13 @@ curve_t *curve_copy(curve_t *src, curve_t *dest) { void curve_free(curve_t **curve) { if (*curve) { seed_free(&(*curve)->seed); - if ((*curve)->points) { - for (size_t i = 0; i < (*curve)->npoints; ++i) { - point_free(&(*curve)->points[i]); - } - points_free(&(*curve)->points); - } + points_free_deep(&(*curve)->points, (*curve)->npoints); pari_free(*curve); *curve = NULL; } } -int curve_init(curve_t *curve, config_t *config, ...) { +int curve_init(curve_t *curve, config_t *config, arg_t *args) { pari_sp ltop = avma; GEN v = gen_0; switch (typ(curve->field)) { @@ -69,9 +64,9 @@ int curve_init(curve_t *curve, config_t *config, ...) { return 1; } -int curve_nonzero(curve_t *curve, config_t *config, ...) { +int curve_nonzero(curve_t *curve, config_t *config, arg_t *args) { pari_sp ltop = avma; - curve_init(curve, config); + curve_init(curve, config, args); if (gequal0(ell_get_disc(curve->curve))) { avma = ltop; return -3; @@ -80,22 +75,22 @@ int curve_nonzero(curve_t *curve, config_t *config, ...) { } } -int curve_seed_fp(curve_t *curve, config_t *config, ...) { - //TODO implement +int curve_seed_fp(curve_t *curve, config_t *config, arg_t *args) { + // TODO implement return INT_MIN; } -int curve_seed_f2m(curve_t *curve, config_t *config, ...) { - //TODO implement +int curve_seed_f2m(curve_t *curve, config_t *config, arg_t *args) { + // TODO implement return INT_MIN; } -int curve_seed(curve_t *curve, config_t *config, ...) { +int curve_seed(curve_t *curve, config_t *config, arg_t *args) { switch (typ(curve->field)) { case t_INT: - return curve_seed_fp(curve, config); + return curve_seed_fp(curve, config, args); case t_FFELT: - return curve_seed_f2m(curve, config); + return curve_seed_f2m(curve, config, args); default: pari_err_TYPE("curve_seed", curve->field); return INT_MIN; /* NOT REACHABLE */ |
