aboutsummaryrefslogtreecommitdiff
path: root/src/gen/point.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gen/point.c')
-rw-r--r--src/gen/point.c86
1 files changed, 1 insertions, 85 deletions
diff --git a/src/gen/point.c b/src/gen/point.c
index 2d307f3..00e7c3c 100644
--- a/src/gen/point.c
+++ b/src/gen/point.c
@@ -5,93 +5,9 @@
#include "point.h"
#include "exhaustive/arg.h"
#include "math/subgroup.h"
-#include "util/memory.h"
+#include "obj/point.h"
#include "util/random.h"
-point_t *point_new(void) { return try_calloc(sizeof(point_t)); }
-
-point_t *point_copy(const point_t *src, point_t *dest) {
- if (src->point) dest->point = gcopy(src->point);
- if (src->order) dest->order = gcopy(src->order);
- if (src->cofactor) dest->cofactor = gcopy(src->cofactor);
- return dest;
-}
-
-point_t *point_new_copy(const point_t *src) {
- point_t *result = point_new();
- return point_copy(src, result);
-}
-
-point_t *point_clone(const point_t *src, point_t *dest) {
- if (src->point) dest->point = gclone(src->point);
- if (src->order) dest->order = gclone(src->order);
- if (src->cofactor) dest->cofactor = gclone(src->cofactor);
- return dest;
-}
-
-point_t *point_new_clone(const point_t *src) {
- point_t *result = point_new();
- return point_clone(src, result);
-}
-
-void point_free(point_t **point) {
- if (*point) {
- if ((*point)->point && isclone((*point)->point)) {
- gunclone((*point)->point);
- }
- if ((*point)->order && isclone((*point)->order)) {
- gunclone((*point)->order);
- }
- if ((*point)->cofactor && isclone((*point)->cofactor)) {
- gunclone((*point)->cofactor);
- }
- try_free(*point);
- *point = NULL;
- }
-}
-
-point_t **points_new(size_t num) { return try_calloc(num * sizeof(point_t *)); }
-
-point_t **points_copy(point_t **const src, point_t **dest, size_t num) {
- for (size_t i = 0; i < num; ++i) {
- dest[i] = point_new_copy(src[i]);
- }
- return dest;
-}
-
-point_t **points_new_copy(point_t **const src, size_t num) {
- point_t **result = points_new(num);
- return points_copy(src, result, num);
-}
-
-point_t **points_clone(point_t **const src, point_t **dest, size_t num) {
- for (size_t i = 0; i < num; ++i) {
- dest[i] = point_new_clone(src[i]);
- }
- return dest;
-}
-
-point_t **points_new_clone(point_t **const src, size_t num) {
- point_t **result = points_new(num);
- return points_clone(src, result, num);
-}
-
-void points_free(point_t ***points) {
- if (*points) {
- try_free(*points);
- *points = NULL;
- }
-}
-
-void points_free_deep(point_t ***points, size_t npoints) {
- if (*points) {
- for (size_t i = 0; i < npoints; ++i) {
- point_free(&(*points)[i]);
- }
- points_free(points);
- }
-}
-
GENERATOR(point_gen_random) {
long which_gen = itos(random_range(gen_0, stoi(curve->ngens)));