This document provides comprehensive API documentation for the QIHSE (Quantum-Inspired Hilbert Space Expansion) search ecosystem.
- Core API
- Configuration API
- Search Operations
- Backend Management
- Memory Management
- ML Engine API
- Benchmarking API
- Distributed Systems API
- Error Codes
- Data Types
- Native Vector DB API
#include <qihse/qihse.h>
// Initialize QIHSE search context
qihse_search_context_t* qihse_search_init(void);
// Destroy search context
void qihse_search_destroy(qihse_search_context_t* ctx);
// Get library version
const char* qihse_version(void);
// Get build information
const qihse_build_info_t* qihse_build_info(void);typedef struct qihse_config_s {
// Hardware backends
bool enable_cpu_avx2; // Enable AVX2 SIMD
bool enable_cpu_avx512; // Enable AVX-512 SIMD
bool enable_cpu_amx; // Enable AMX tiles
bool enable_npu; // Enable Neural Processing Unit
bool enable_gpu_intel; // Enable Intel Arc GPU
bool enable_gpu_nvidia; // Enable NVIDIA GPU
// Quantum-inspired settings
uint32_t rff_dimension; // RFF Hilbert space dimension
double rff_gamma; // RFF kernel parameter
qihse_quantum_mode_t quantum_mode; // Quantum algorithm mode
// Verification settings
qihse_verify_mode_t verification_mode; // Verification level
double confidence_threshold; // Minimum confidence threshold
uint32_t max_verification_time_ms; // Max verification time
// Memory settings
size_t max_memory_mb; // Maximum memory usage
bool enable_uma; // Enable Unified Memory Architecture
qihse_memory_policy_t memory_policy; // Memory management policy
// ML settings
bool enable_self_optimization; // Enable self-optimizing runtime
uint32_t ml_batch_size; // ML training batch size
double ml_learning_rate; // ML learning rate
// Energy settings
bool enable_energy_aware; // Enable energy-aware optimization
uint32_t max_power_watts; // Maximum power budget
double thermal_limit_celsius; // Thermal throttling limit
// Distributed settings
bool enable_distributed; // Enable distributed execution
const char* cluster_name; // Cluster name for discovery
uint16_t cluster_port; // Cluster communication port
// Security settings
qihse_security_level_t security_level; // CNSA 2.0 compliance level
const char* key_store_path; // Path to secure key store
} qihse_config_t;// Create default configuration
qihse_config_t* qihse_config_default(void);
// Load configuration from file
qihse_config_t* qihse_config_load(const char* config_file);
// Save configuration to file
int qihse_config_save(const qihse_config_t* config, const char* config_file);
// Validate configuration
int qihse_config_validate(const qihse_config_t* config, qihse_error_info_t* error);
// Free configuration
void qihse_config_free(qihse_config_t* config);
// Get configuration description
const char* qihse_config_describe(const qihse_config_t* config);// Update configuration at runtime
int qihse_config_update(qihse_search_context_t* ctx, const qihse_config_t* new_config);
// Get current configuration
const qihse_config_t* qihse_config_get(const qihse_search_context_t* ctx);
// Check if configuration change requires restart
bool qihse_config_requires_restart(const qihse_config_t* current, const qihse_config_t* new_config);// Load vector dataset
int qihse_search_load_vectors(qihse_search_context_t* ctx,
const char* dataset_path,
qihse_vector_format_t format,
const qihse_config_t* config);
// Load graph dataset
int qihse_search_load_graph(qihse_search_context_t* ctx,
const char* dataset_path,
qihse_graph_format_t format,
const qihse_config_t* config);
// Unload dataset
void qihse_search_unload(qihse_search_context_t* ctx);
// Get dataset statistics
int qihse_search_get_stats(const qihse_search_context_t* ctx,
qihse_dataset_stats_t* stats);// Single vector search
int qihse_search_vector(qihse_search_context_t* ctx,
const float* query_vector,
uint32_t k,
uint32_t* result_ids,
float* result_distances);
// Batch vector search
int qihse_search_vector_batch(qihse_search_context_t* ctx,
const float* query_vectors,
uint32_t num_queries,
uint32_t k,
uint32_t* result_ids,
float* result_distances,
uint32_t* result_counts);
// Approximate nearest neighbor search
int qihse_search_ann(qihse_search_context_t* ctx,
const float* query_vector,
uint32_t k,
float epsilon,
uint32_t* result_ids,
float* result_distances);
// Range search
int qihse_search_range(qihse_search_context_t* ctx,
const float* query_vector,
float radius,
uint32_t max_results,
uint32_t* result_ids,
float* result_distances,
uint32_t* num_results);The native QIHSE vector DB API provides trinary/qmag candidate modes and file-backed persistence.
#include "qihse_vector_db.h"
typedef enum qihse_vector_db_query_mode_e {
QIHSE_VDB_QUERY_FLOAT32 = 0,
QIHSE_VDB_QUERY_TRINARY_SCALAR = 1,
QIHSE_VDB_QUERY_TRINARY_MAGNITUDE = 2,
QIHSE_VDB_QUERY_TRINARY_MAGNITUDE_BYPASS = 3,
} qihse_vector_db_query_mode_t;
qihse_vector_db_t qihse_vector_db_open(
qihse_vector_db_backend_t backend,
qihse_uma_manager_t uma,
const char* db_path,
uint32_t flags);
int qihse_vector_db_search(
qihse_vector_db_t vdb,
const qihse_vector_query_t* query,
qihse_vector_result_t* results,
size_t max_results);QIHSE_VDB_QUERY_FLOAT32uses authoritative exact float32 search and ignores sidecar failures.QIHSE_VDB_QUERY_TRINARY_SCALARandQIHSE_VDB_QUERY_TRINARY_MAGNITUDEuse sidecars for candidate reduction and exact float32 rerank.QIHSE_VDB_QUERY_TRINARY_MAGNITUDE_BYPASSuses qmag-only ordering for fast approximate results; scores are qmag scores, not cosine.- Explicit trinary modes fail when sidecars are absent/corrupt/stale rather than silently falling back.
candidate_pool_size = 0enables the safe default policy for qmag; qmag default may still fall back to exact float32 when policy gates deny it.QIHSE_VDB_QUERY_TRINARY_MAGNITUDE_BYPASSnever falls back to exact float32.
// Graph traversal search
int qihse_search_graph(qihse_search_context_t* ctx,
uint32_t start_node,
qihse_graph_search_mode_t mode,
uint32_t max_depth,
uint32_t* result_nodes,
uint32_t* result_distances,
uint32_t* num_results);
// Shortest path search
int qihse_search_shortest_path(qihse_search_context_t* ctx,
uint32_t start_node,
uint32_t end_node,
uint32_t* path_nodes,
uint32_t* path_length,
uint32_t max_path_length);// Traveling salesman problem
int qihse_search_tsp(qihse_search_context_t* ctx,
const qihse_tsp_config_t* tsp_config,
qihse_tsp_solution_t* solution);
// Job shop scheduling
int qihse_search_jobshop(qihse_search_context_t* ctx,
const qihse_jobshop_config_t* js_config,
qihse_jobshop_solution_t* solution);
// Knapsack optimization
int qihse_search_knapsack(qihse_search_context_t* ctx,
const qihse_knapsack_config_t* ks_config,
qihse_knapsack_solution_t* solution);// Discover available backends
int qihse_backend_discover(qihse_search_context_t* ctx);
// Get backend capabilities
int qihse_backend_get_capabilities(qihse_search_context_t* ctx,
qihse_backend_type_t backend_type,
qihse_backend_caps_t* capabilities);
// Select backend for operation
int qihse_backend_select(qihse_search_context_t* ctx,
qihse_operation_type_t operation,
qihse_backend_type_t* selected_backend);
// Get backend performance metrics
int qihse_backend_get_metrics(qihse_search_context_t* ctx,
qihse_backend_type_t backend_type,
qihse_backend_metrics_t* metrics);// CPU backend operations
int qihse_cpu_avx2_execute(qihse_search_context_t* ctx, qihse_operation_t* op);
int qihse_cpu_avx512_execute(qihse_search_context_t* ctx, qihse_operation_t* op);
int qihse_cpu_amx_execute(qihse_search_context_t* ctx, qihse_operation_t* op);
// NPU backend operations
int qihse_npu_openvino_execute(qihse_search_context_t* ctx, qihse_operation_t* op);
int qihse_npu_pim_execute(qihse_search_context_t* ctx, qihse_operation_t* op);
// GPU backend operations
int qihse_gpu_cuda_execute(qihse_search_context_t* ctx, qihse_operation_t* op);
int qihse_gpu_sycl_execute(qihse_search_context_t* ctx, qihse_operation_t* op);// Allocate unified memory
void* qihse_uma_alloc(qihse_search_context_t* ctx, size_t size, qihse_memory_flags_t flags);
// Free unified memory
void qihse_uma_free(qihse_search_context_t* ctx, void* ptr);
// Migrate memory between devices
int qihse_uma_migrate(qihse_search_context_t* ctx,
void* ptr,
qihse_device_type_t source_device,
qihse_device_type_t target_device);
// Prefetch memory to device
int qihse_uma_prefetch(qihse_search_context_t* ctx,
void* ptr,
size_t size,
qihse_device_type_t device);// Allocate holographic memory
void* qihse_hma_alloc(qihse_search_context_t* ctx,
qihse_memory_tier_t tier,
size_t size);
// Free holographic memory
void qihse_hma_free(qihse_search_context_t* ctx, void* ptr);
// Get memory tier information
int qihse_hma_get_tier_info(qihse_search_context_t* ctx,
qihse_memory_tier_t tier,
qihse_tier_info_t* info);
// Optimize memory layout
int qihse_hma_optimize_layout(qihse_search_context_t* ctx);// Initialize ML engine
int qihse_ml_init(qihse_search_context_t* ctx, const qihse_ml_config_t* config);
// Destroy ML engine
void qihse_ml_destroy(qihse_search_context_t* ctx);
// Process query with ML optimization
int qihse_ml_process_query(qihse_search_context_t* ctx,
qihse_query_t* query,
qihse_ml_decision_t* decision);
// Train ML models
int qihse_ml_train(qihse_search_context_t* ctx,
const qihse_training_data_t* training_data,
uint32_t epochs);
// Get ML engine statistics
int qihse_ml_get_stats(const qihse_search_context_t* ctx,
qihse_ml_stats_t* stats);// Initialize contextual bandit
qihse_contextual_bandit_t* qihse_cb_init(const qihse_cb_config_t* config);
// Destroy contextual bandit
void qihse_cb_destroy(qihse_contextual_bandit_t* cb);
// Select action based on context
int qihse_cb_select_arm(qihse_contextual_bandit_t* cb,
const qihse_context_t* context,
uint32_t* selected_arm);
// Update bandit with reward
int qihse_cb_update(qihse_contextual_bandit_t* cb,
uint32_t arm,
double reward,
const qihse_context_t* context);
// Get bandit statistics
int qihse_cb_get_stats(const qihse_contextual_bandit_t* cb,
qihse_cb_stats_t* stats);// Initialize meta-optimizer
qihse_meta_optimizer_t* qihse_meta_init(const qihse_meta_config_t* config);
// Train on new task
int qihse_meta_train(qihse_meta_optimizer_t* meta,
const qihse_task_data_t* task_data,
uint32_t num_steps);
// Adapt to new task
int qihse_meta_adapt(qihse_meta_optimizer_t* meta,
const qihse_task_data_t* task_data,
uint32_t adaptation_steps);
// Get adaptation performance
double qihse_meta_get_performance(const qihse_meta_optimizer_t* meta);// Initialize benchmark runner
qihse_benchmark_runner_t* qihse_benchmark_init(const qihse_benchmark_config_t* config);
// Run benchmark
int qihse_benchmark_run(qihse_benchmark_runner_t* runner,
qihse_workload_type_t workload_type,
qihse_benchmark_results_t* results);
// Run comparative benchmark
int qihse_benchmark_compare(qihse_benchmark_runner_t* runner,
const qihse_baseline_results_t* baseline,
qihse_comparison_report_t* report);
// Destroy benchmark runner
void qihse_benchmark_destroy(qihse_benchmark_runner_t* runner);// Initialize regression detector
qihse_regression_detector_t* qihse_regression_init(const qihse_regression_config_t* config);
// Add performance measurement
int qihse_regression_add_measurement(qihse_regression_detector_t* detector,
const qihse_performance_metrics_t* metrics);
// Detect regression
qihse_regression_status_t qihse_regression_detect(qihse_regression_detector_t* detector);
// Get regression statistics
int qihse_regression_get_stats(const qihse_regression_detector_t* detector,
qihse_regression_stats_t* stats);// Initialize distributed manager
qihse_distributed_manager_t* qihse_distributed_init(uint32_t local_node_id,
const char* hostname,
uint16_t port);
// Join cluster
int qihse_distributed_join_cluster(qihse_distributed_manager_t* manager,
const char* seed_hostname,
uint16_t seed_port);
// Leave cluster
int qihse_distributed_leave_cluster(qihse_distributed_manager_t* manager);
// Get cluster statistics
int qihse_distributed_get_stats(const qihse_distributed_manager_t* manager,
uint32_t* num_nodes,
uint32_t* leader_id,
double* avg_latency);// Send message
int qihse_distributed_send_message(qihse_distributed_manager_t* manager,
uint32_t target_node_id,
const qihse_distributed_message_t* message);
// Broadcast message
int qihse_distributed_broadcast_message(qihse_distributed_manager_t* manager,
const qihse_distributed_message_t* message);
// Synchronize state
int qihse_distributed_sync_state(qihse_distributed_manager_t* manager,
uint32_t timeout_ms);typedef enum qihse_error_e {
QIHSE_SUCCESS = 0, // Operation successful
QIHSE_ERROR_INVALID_ARGUMENT, // Invalid argument provided
QIHSE_ERROR_OUT_OF_MEMORY, // Memory allocation failed
QIHSE_ERROR_IO, // I/O operation failed
QIHSE_ERROR_TIMEOUT, // Operation timed out
QIHSE_ERROR_NOT_SUPPORTED, // Operation not supported
QIHSE_ERROR_HARDWARE, // Hardware error occurred
QIHSE_ERROR_SECURITY, // Security violation
QIHSE_ERROR_NETWORK, // Network communication error
QIHSE_ERROR_CONSISTENCY, // Data consistency error
QIHSE_ERROR_VERIFICATION, // Verification failed
QIHSE_ERROR_REGRESSION, // Performance regression detected
QIHSE_ERROR_DISTRIBUTED, // Distributed system error
QIHSE_ERROR_ML, // Machine learning error
QIHSE_ERROR_QUANTUM, // Quantum algorithm error
} qihse_error_t;typedef struct qihse_search_context_s qihse_search_context_t; // Opaque search context
typedef struct qihse_distributed_manager_s qihse_distributed_manager_t; // Distributed manager
typedef struct qihse_benchmark_runner_s qihse_benchmark_runner_t; // Benchmark runner
typedef struct qihse_ml_engine_s qihse_ml_engine_t; // ML engine
typedef uint32_t qihse_id_t; // Identifier type
typedef double qihse_score_t; // Score/confidence type
typedef uint64_t qihse_timestamp_t; // Timestamp typetypedef enum qihse_backend_type_e {
QIHSE_BACKEND_CPU_AVX2,
QIHSE_BACKEND_CPU_AVX512,
QIHSE_BACKEND_CPU_AMX,
QIHSE_BACKEND_NPU_OPENVINO,
QIHSE_BACKEND_GPU_CUDA,
QIHSE_BACKEND_GPU_SYCL
} qihse_backend_type_t;
typedef enum qihse_verify_mode_e {
QIHSE_VERIFY_NONE, // No verification
QIHSE_VERIFY_FAST, // Fast probabilistic verification
QIHSE_VERIFY_WINDOW, // Sliding window verification
QIHSE_VERIFY_FALLBACK, // Fallback verification
QIHSE_VERIFY_EXACT, // Exact deterministic verification
QIHSE_VERIFY_PRECISION // High-precision verification
} qihse_verify_mode_t;
typedef enum qihse_quantum_mode_e {
QIHSE_QUANTUM_CLASSICAL, // Classical algorithms only
QIHSE_QUANTUM_HYBRID, // Classical + quantum-inspired
QIHSE_QUANTUM_PREFERRED, // Prefer quantum when available
QIHSE_QUANTUM_REQUIRED // Require quantum hardware
} qihse_quantum_mode_t;typedef struct qihse_vector_s {
uint32_t dimension; // Vector dimension
float* data; // Vector data
} qihse_vector_t;
typedef struct qihse_query_s {
qihse_operation_type_t type; // Query type
union {
qihse_vector_t vector; // Vector query data
qihse_graph_query_t graph; // Graph query data
qihse_constraint_query_t constraint; // Constraint query data
} data;
qihse_verify_mode_t verification; // Verification level
uint32_t timeout_ms; // Query timeout
} qihse_query_t;
typedef struct qihse_result_s {
qihse_id_t id; // Result identifier
qihse_score_t score; // Result score/confidence
qihse_timestamp_t timestamp; // Result timestamp
void* data; // Result-specific data
} qihse_result_t;For complete API documentation including all function signatures, parameter descriptions, return values, and usage examples, see the individual header files in the include/ directories of each component.