Le plan de calcul

445 modules.
Un runtime épinglé.

Le plan de calcul de SQAI est une bibliothèque de noyaux compilés : statistiques, valorisation d'options, infrastructure LLM — chaque fonction typée dans le contrat à 4 778 capacités. Un agent nomme une fonction. Le moteur retourne le nombre — à chaud, en moins d'une milliseconde.

445modules
100+packs appliqués
4 778capacités dans le contrat
0,83–0,93 mscalcul à chaud, mesuré

IILe livre de spécimens

Douze familles, composées en caractères.

Parcourez la bibliothèque comme un livre de spécimens typographiques : chaque famille, une page ; chaque fonction, un œil. Chaque nom figurant ici est réel — typé dans le contrat, vérifié avant exécution, haché après.

№ 01fol. 1 / 12

Statistiques

  • stats.median
  • stats.quantile
  • regression.ols_multiple

№ 02fol. 2 / 12

Tests d'hypothèses

  • stat_tests.pearson_r
  • ab_testing.sample_size_proportion

№ 03fol. 3 / 12

Probabilités

  • distributions.sample_normal
  • distributions.sample_poisson

№ 04fol. 4 / 12

Séries temporelles

  • timeseries_stats.holt_linear
  • timeseries_stats.acf

№ 05fol. 5 / 12

Algèbre linéaire

  • linalg.mat_inv
  • matrix_decomp.cholesky

№ 06fol. 6 / 12

Optimisation

  • root_finding.newton_raphson
  • integrate.simpson
  • operations_research.eoq_quantity

№ 07fol. 7 / 12

Finance & risque

  • finance.npv
  • finance.irr
  • finance.cagr
  • finance.max_drawdown
  • risk.beta
  • risk.conditional_var

№ 08fol. 8 / 12

Valorisation d'options

  • option_pricing.black_scholes_call
  • option_pricing.black_scholes_put
  • option_pricing.implied_volatility

№ 09fol. 9 / 12

Apprentissage automatique

  • ml.classifiers.knn_predict
  • ml.classifiers.logistic_predict
  • ml.clustering.kmeans_fit

№ 10fol. 10 / 12

Signal

  • fft.power_spectrum
  • wavelet.denoise_haar

№ 11fol. 11 / 12

Théorie de l'information

  • information_theory.entropy
  • information_theory.kl_divergence

№ 12fol. 12 / 12

Infrastructure LLM

  • flash_attention.flash_block_output
  • kv_cache.incremental_decode_kv_append
  • rag_retrieval.bm25_term_score

La casse — packs appliqués

actuariat → viticulture

  • 01actuariat
  • 02aérospatiale
  • 03épidémiologie
  • 04hydrologie
  • 05pharmacocinétique
  • 06robotique
  • 07sismologie
  • 08thermodynamique
  • 09viticulture
  • 100+packs appliqués dans la casse — neuf tiroirs ouverts ici. Chacun répond sur le même contrat : mêmes contrôles de politique, même enveloppe de provenance.

IIIL'impression

Vitesse compilée. Précision prouvée.

Derrière chaque famille : des noyaux optimisés à la main, compilés en avance. Le déterminisme n'a ici aucun coût — float64, fil d'exécution unique, et toujours plus rapide que les références interprétées de plusieurs ordres de grandeur.

Vitesse

91.86×accélération médiane par rapport aux références interprétées

  • 111,24× en moyenne · 1 593× d'accélération maximale
  • mesuré sur 4 207 fonctions comparées dans le tableau de bord public
  • 0,83–0,93 ms calcul à chaud · plan de requête sous la milliseconde

Précision

0divergences sur 2 744 vérifications d'exactitude

  • 2 458 vérifications par fuzzing sur 800+ jeux de données et 8 distributions
  • 232 cas limites · 54 vérifications de suite · tri bit-exact
  • erreur numérique maximale : 1,8e-15
0/16 → 16/16même modèle, calcul par le moteur

Le test A/B de précision : le même modèle répond à 16 questions quantitatives. Seul, sans le moteur, il obtient 0/16. Avec le moteur pour les calculs, 16/16.

~110 secondes, une seule fois.
0,83–0,93 ms ensuite.

téléchargement · vérification · épinglage — puis c'est de l'arithmétique pure

~110 sprovisionnement unique — téléchargement, vérification, épinglage
0,83–0,93 mscalcul à chaud, mesuré
sub-msplan de requête, chaque réponse

VL'exécution mesurée

Un appel, reçu inclus.

Un calcul réel, de bout en bout. Le même appel retourne la même valeur et le même hash en TypeScript et en Python — et le runtime qui l'exécute peut être réduit exactement aux modules que vous livrez.

exécution mesurée — finance.npv

appelfinance.npv(0.1, [-1000, 300, 420, 560, 680])
valeur505.020148896933identique en TypeScript et en Python
durée0.83 msà chaud
computation_hashb74f67d0d7a594aa7ac91f6291612452aa8ccdf603351ebc8d801a6fddd91bc8

Un résultat que l'on peut rejouer, pas seulement lire.

Ne livrez que ce que vous utilisez.

Une variable d'environnement détermine ce que le service de build compile.

SQAI_RUNTIME_MODULES
Nommez les modules dont votre produit a besoin. Seuls ceux-là entrent dans le build.
POST /v1/runtime/build
Le service de build compile un runtime calé exactement sur ce filtre, au provisionnement.
filter-hash
Les bundles sont indexés par ce filtre. Le même filtre résout toujours vers le même bundle.

La découverte reste en processus.

Les agents ne devinent pas la surface — ils la recherchent, localement.

searchCapabilities
Parcourt le contrat embarqué dans le package. En processus — aucun appel réseau.
unsupported_operation
Un nom inconnu est refusé avec une erreur structurée, accompagnée de nearest_matches pour corriger le tir.

VIQuestions

Les détails.

Quelle est vraiment la vitesse de calcul ?

Le premier calcul provisionne le runtime épinglé — environ 110 secondes, une seule fois. Ensuite, la latence à chaud mesurée est de 0,83–0,93 ms par calcul, et le plan de requête répond en moins d'une milliseconde.

Puis-je livrer un runtime plus léger ?

Oui. Définissez SQAI_RUNTIME_MODULES et le runtime est compilé selon ce filtre au provisionnement. Les bundles sont indexés par le hash du filtre : le même filtre reproduit toujours le même bundle.

Les résultats sont-ils vraiment identiques entre les langages ?

Par construction. Les kernels s'exécutent en float64 sur un seul thread, et les résultats sont hachés sur du canonical JSON. finance.npv(0.1, [-1000, 300, 420, 560, 680]) retourne 505.020148896933 avec le même computation_hash en TypeScript et en Python.

Comment un agent sait-il ce qu'il peut calculer ?

Il recherche. searchCapabilities s'exécute en processus sur le contrat embarqué dans le package, et un nom de fonction inconnu retourne unsupported_operation avec nearest_matches — jamais une supposition.