Time-Domain System Equivalent logoTime-Domain System EquivalentLinear dynamics, solved faster.Discuss an evaluation
SDK Documentation

Runtime API summary

A compact reference for the runtime-facing API surface.

TDSE Runtime has one product lifecycle and one execution-selection model. Create a model with all device and resource choices, run the ordinary step loop, and release or destroy the model. Private diagnostic routes and execution strategies are not part of the customer integration contract.

Minimal lifecycle

tdse_model_t *model = NULL;
tdse_model_create_diagnostics_t diagnostics =
    tdse_model_create_diagnostics_init();

tdse_status_t status = tdse_model_create(
    pack_data, pack_size, NULL, &diagnostics, &model);

Passing NULL options selects CPU, FP64, host-resident dynamic data, and the host's current OpenBLAS configuration.

Configured lifecycle

tdse_model_create_options_t options = tdse_model_create_options_init();
options.device = TDSE_DEVICE_CPU;
options.precision = TDSE_PRECISION_FP64;
options.cpu_threads = provider_threads;

tdse_status_t status = tdse_model_create(
    pack_data, pack_size, &options, &diagnostics, &model);

The same structure selects GPU or FPGA execution, host- or device-resident dynamic data, a scalar accelerator ordinal or ordered GPU set, caller-owned device queue, CPU IDs, CPU memory placement, and model memory limit. Device ID lists are copied during creation. These properties are immutable after creation.

Product API map

JobAPI
Create with defaults or explicit resourcestdse_model_create(...)
Inspect selected and observed resourcestdse_model_get_execution_info(...)
Inspect static model shapetdse_model_info(...)
Inspect live model statetdse_model_state_info(...)
Prepare/end a resident execution intervaltdse_model_execution_prepare(...), tdse_model_execution_end(...)
Begin a trial steptdse_step_begin(...)
Read instantaneous operatortdse_step_op(...)
Read delayed historytdse_step_hr(...)
Read independent responsetdse_step_ir(...)
Commit accepted primary valuestdse_step_commit(...)
Read direct responsetdse_step_dr(...)
Clear committed state for intentional reusetdse_model_reset(...)
Normal bounded shutdowntdse_model_destroy(...)
Terminal cleanup/finalizertdse_model_release(...)
Decode status and pack failurestdse_status_message(...), tdse_pack_error_token(...)

For device-resident GPU execution, the dynamic history/primary boundary is tdse_eval_history_device_typed(...), tdse_eval_history_device_view_typed(...), and tdse_commit_primary_device_typed(...).

C++ equivalents

JobC++ API
Default creationtdse::Model::fromMemory(pack)
Configured creationtdse::Model::fromMemory(pack, tdse::ModelOptions)
Execution snapshotmodel.executionInfo()
Step loopbeginStep, stepOp, stepHr, stepIr, commit, stepDr
Shutdowndestroy, release

Ownership rules

  • One worker owns a live model handle at a time.
  • Create options are copied except for documented borrowed context/queue handles.
  • TDSE never changes process-wide OpenBLAS thread settings or host affinity.
  • Explicit GPU or FPGA selection fails closed; it never falls back to CPU.
  • Device, precision, residency, and CPU resources change only by recreating the model.

For details, see Runtime Lifecycle, Step Execution, Concurrency and Shutdown, and Execution Devices and Performance.