aboutsummaryrefslogtreecommitdiff
path: root/src/io/output.c
diff options
context:
space:
mode:
authorJ08nY2018-06-30 16:21:12 +0200
committerJ08nY2018-06-30 16:21:12 +0200
commit3e4c87f12d13cd0a2d139cf8a149874634972afa (patch)
tree2f842fbea93e9aecfc539e40c1c1dea1aba228be /src/io/output.c
parente5066a307b62b7b64c91add8131d94aef3cfcf42 (diff)
downloadecgen-3e4c87f12d13cd0a2d139cf8a149874634972afa.tar.gz
ecgen-3e4c87f12d13cd0a2d139cf8a149874634972afa.tar.zst
ecgen-3e4c87f12d13cd0a2d139cf8a149874634972afa.zip
Diffstat (limited to 'src/io/output.c')
-rw-r--r--src/io/output.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/io/output.c b/src/io/output.c
index 2130614..8ad4ab0 100644
--- a/src/io/output.c
+++ b/src/io/output.c
@@ -5,6 +5,8 @@
#include "output.h"
#include <parson/parson.h>
+#include <misc/config.h>
+#include <misc/types.h>
#include "gen/field.h"
#include "util/bits.h"
#include "util/memory.h"
@@ -120,6 +122,39 @@ static JSON_Value *output_jjson(curve_t *curve) {
}
json_object_set_value(root_object, "subgroups", gens_value);
}
+ if (cfg->metadata) {
+ debug_log("here");
+ if (curve->meta.j_invariant != NULL) {
+ char *j = pari_sprintf("%Pi", curve->meta.j_invariant);
+ json_object_dotset_string(root_object, "meta.j", j);
+ pari_free(j);
+ }
+ debug_log("here");
+ if (curve->meta.discriminant != NULL) {
+ char *disc = pari_sprintf("%Pi", curve->meta.discriminant);
+ json_object_dotset_string(root_object, "meta.discriminant", disc);
+ pari_free(disc);
+ }
+ debug_log("here");
+ if (curve->meta.embedding_degree != NULL) {
+ char *embedding_degree = pari_sprintf("%Pi", curve->meta.embedding_degree);
+ json_object_dotset_string(root_object, "meta.embedding_degree", embedding_degree);
+ pari_free(embedding_degree);
+ }
+ debug_log("here");
+ if (curve->meta.frobenius_trace != NULL) {
+ char *frobenius = pari_sprintf("%Pi", curve->meta.frobenius_trace);
+ json_object_dotset_string(root_object, "meta.frobenius", frobenius);
+ pari_free(frobenius);
+ }
+ debug_log("here");
+ if (curve->meta.cm_discriminant != NULL) {
+ char *cm_discriminant = pari_sprintf("%Pi", curve->meta.cm_discriminant);
+ json_object_dotset_string(root_object, "meta.cm_discriminant", cm_discriminant);
+ pari_free(cm_discriminant);
+ }
+ debug_log("here");
+ }
avma = ltop;
return root_value;