mirror of
https://github.com/ALLFATHER-BV/wadamesh.git
synced 2026-10-23 00:01:25 +00:00
First board lands. wadamesh builds the LVGL touch firmware as its own project, consuming the MeshCore core via lib_deps @ git tag (ALLFATHER-BV/MeshCore #v1.16.0-wada.0) — no vendored core in this repo. Output is byte-identical to the in-tree meshcomod build (delta = embedded build-path strings only). Contents: companion_radio app (MyMesh/main/DataStore), ui-touch LVGL UI, variants/heltec_v4 board glue, boards/heltec_v4.json, lv_conf, the bundled ed25519 lib, AsyncElegantOTA, partition table, and a flattened platformio.ini for env heltec_v4_tft_companion_radio_usb_tcp_touch. MeshCore-derived files (app glue) remain MIT; ui-touch is GPL — see NOTICE. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
42 lines
980 B
C
42 lines
980 B
C
#ifndef FE_H
|
|
#define FE_H
|
|
|
|
#include "fixedint.h"
|
|
|
|
|
|
/*
|
|
fe means field element.
|
|
Here the field is \Z/(2^255-19).
|
|
An element t, entries t[0]...t[9], represents the integer
|
|
t[0]+2^26 t[1]+2^51 t[2]+2^77 t[3]+2^102 t[4]+...+2^230 t[9].
|
|
Bounds on each t[i] vary depending on context.
|
|
*/
|
|
|
|
|
|
typedef int32_t fe[10];
|
|
|
|
|
|
void fe_0(fe h);
|
|
void fe_1(fe h);
|
|
|
|
void fe_frombytes(fe h, const unsigned char *s);
|
|
void fe_tobytes(unsigned char *s, const fe h);
|
|
|
|
void fe_copy(fe h, const fe f);
|
|
int fe_isnegative(const fe f);
|
|
int fe_isnonzero(const fe f);
|
|
void fe_cmov(fe f, const fe g, unsigned int b);
|
|
void fe_cswap(fe f, fe g, unsigned int b);
|
|
|
|
void fe_neg(fe h, const fe f);
|
|
void fe_add(fe h, const fe f, const fe g);
|
|
void fe_invert(fe out, const fe z);
|
|
void fe_sq(fe h, const fe f);
|
|
void fe_sq2(fe h, const fe f);
|
|
void fe_mul(fe h, const fe f, const fe g);
|
|
void fe_mul121666(fe h, fe f);
|
|
void fe_pow22523(fe out, const fe z);
|
|
void fe_sub(fe h, const fe f, const fe g);
|
|
|
|
#endif
|