44 lines
1.7 KiB
C
44 lines
1.7 KiB
C
#include <stdio.h>
|
|
#include "LocalMarket.h"
|
|
#include "admm_lite.h"
|
|
#include "Registry.h"
|
|
#include "dsl_seed.h"
|
|
#include "delta_crdt.h"
|
|
|
|
// A tiny demo that creates two LocalMarkets and demonstrates a simple ADMM-lite step.
|
|
int main(void) {
|
|
// 1) Demonstrate a simple registry usage (GoC-like bridge)
|
|
Registry reg;
|
|
registry_init(®);
|
|
registry_register(®, "LocalMarket", "v1.0", 1);
|
|
registry_register(®, "SharedSignals", "v1.0", 1);
|
|
const char* lm_ver = registry_lookup(®, "LocalMarket");
|
|
printf("DeltaMesh REG: LocalMarket -> %s\n", lm_ver ? lm_ver : "<missing>");
|
|
|
|
// 2) Demonstrate DSL seed usage (toy initialization)
|
|
LocalMarketSeed lm_seed;
|
|
dsl_localmarket_seed_init(&lm_seed, "VenueA", 100.0, 50.0);
|
|
SharedSignalsSeed ss_seed;
|
|
dsl_sharedsignals_seed_init(&ss_seed, 0.25, 0.18);
|
|
PlanDeltaSeed pd_seed;
|
|
dsl_plandelta_seed_init(&pd_seed, 0.5, 0.2, 12345);
|
|
printf("DeltaMesh DSL seeds: lm=%s, ivol=%.3f, quote=%.3f\n",
|
|
lm_seed.venue, ss_seed.implied_vol, pd_seed.quote);
|
|
|
|
// 3) Demonstrate a CRDT-like delta merge (toy)
|
|
DeltaCRDT d1 = { .version = 1, .value_delta = 0.2 };
|
|
DeltaCRDT d2 = { .version = 2, .value_delta = -0.1 };
|
|
DeltaCRDT merged = {0};
|
|
crdt_merge(&d1, &d2, &merged);
|
|
printf("DeltaMesh CRDT merge: ver=%lu delta=%.4f\n", merged.version, merged.value_delta);
|
|
|
|
// 4) Simple ADMM-lite step using existing demo helper for compatibility
|
|
LocalMarket v1 = {"VenueA", 100.0, 50.0};
|
|
LocalMarket v2 = {"VenueB", 150.0, 75.0};
|
|
double quotes[2] = { v1.inventory, v2.inventory };
|
|
double aggregate = 0.0;
|
|
admm_lite_step(quotes, 2, &aggregate);
|
|
printf("DeltaMesh DEMO: aggregated quote = %f\n", aggregate);
|
|
return 0;
|
|
}
|