Documentation

GenusCore SDK Documentation

Everything you need to get started with high-performance graph analytics.

Installation

Install GenusCore using pip. The package includes pre-compiled binaries for all supported platforms.

pip install genuscore

Requirements: Python 3.11+, compatible hardware (see System Requirements), NumPy 1.24+

Quick Start

Here's a minimal example to verify your installation and see GenusCore in action:

from genuscore import DynamicGraph

# Create a graph with 100 nodes
G = DynamicGraph(num_nodes=100)

# Add some edges
G.add_edge(0, 1, weight=1.0)
G.add_edge(1, 2, weight=2.0)
G.add_edge(0, 2, weight=5.0)

# Compute shortest paths from node 0
distances = G.shortest_paths(source=0)

print(f"Distance from 0 to 1: {distances[1]}")  # 1.0
print(f"Distance from 0 to 2: {distances[2]}")  # 3.0 (via node 1)

# Update an edge
G.update_edge(0, 2, weight=2.0)

# Incremental update (much faster!)
new_distances = G.update_shortest_paths(source=0)

print(f"New distance to 2: {new_distances[2]}")  # 2.0 (direct)

Licensing

GenusCore requires a valid license to operate. Licenses are hardware-locked to your specific machine for security.

Setting up your license:

  1. Create an account at portal.genuscore.com
  2. Register your system to get your hardware fingerprint
  3. Download your license file from the portal
  4. Place the license file in your project or set GENUSCORE_LICENSE_PATH
# Set license path via environment variable
export GENUSCORE_LICENSE_PATH=/path/to/license.json

DynamicGraph

High-performance dynamic graph processor with incremental shortest paths.

Constructor

DynamicGraph(num_nodes: int, max_neighbors: int = 128)
  • num_nodes: Number of nodes in the graph
  • max_neighbors: Maximum edges per node (default: 128)

Methods

add_edge(u: int, v: int, weight: float = 1.0)

Add a weighted edge from node u to node v.

update_edge(u: int, v: int, weight: float)

Update the weight of an existing edge.

remove_edge(u: int, v: int)

Remove an edge from the graph.

shortest_paths(source: int, max_iterations: int = 100) → np.ndarray

Compute shortest paths from source to all nodes (full computation).

update_shortest_paths(source: int, max_iterations: int = 10) → np.ndarray

Incrementally update shortest paths after edge changes. 1000x faster than full recomputation.

SwarmOptimizer

Advanced optimizer for NP-hard combinatorial problems like Max-Cut and graph partitioning.

Constructor

SwarmOptimizer(num_nodes: int, debug: bool = False)
  • num_nodes: Number of nodes/variables in the problem
  • debug: Enable debug output

Methods

load_graph(edges: List[Tuple[int, int]], weights: Optional[List[float]] = None)

Load a graph for Max-Cut optimization.

solve_maxcut(iterations: int = 1000, noise_schedule: Tuple[float, float] = (1.0, 0.1)) → OptResult

Solve the Max-Cut problem using proprietary optimization.

IsingMachine

High-performance Ising machine for combinatorial optimization via Ising/QUBO formulations.

Constructor

IsingMachine(num_spins: int, debug: bool = False)
  • num_spins: Number of binary variables (spins)
  • debug: Enable debug output

Methods

load_graph(edges: List[Tuple[int, int]], weights: Optional[List[float]] = None)

Load a graph for Max-Cut (converted to Ising internally).

set_qubo(Q: np.ndarray)

Set a QUBO problem matrix. Minimizes x^T Q x where x ∈ {0,1}^n.

solve(iterations: int = 1000, parallel_runs: int = 1, damping: float = 0.1) → OptResult

Solve using proprietary optimization algorithms.

OptResult

Result object returned by optimization methods.

Attributes

  • solution: np.ndarray — Solution vector (partition or spin assignment)
  • objective_value: float — Final objective value achieved
  • best_objective: float — Best objective value found
  • iterations: int — Number of iterations executed
  • time_ms: float — Execution time in milliseconds
  • convergence_history: List[float] — History of objective values

System Requirements

Software

  • Python 3.11 or newer
  • NumPy 1.24+
  • Linux, Windows, or macOS
  • See documentation for additional requirements

Hardware

  • Compatible accelerator hardware
  • See licensing portal for supported configurations
  • Contact sales for detailed compatibility

Support

Need help? We're here for you.