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 genuscoreRequirements: 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:
- Create an account at portal.genuscore.com
- Register your system to get your hardware fingerprint
- Download your license file from the portal
- Place the license file in your project or set
GENUSCORE_LICENSE_PATH
# Set license path via environment variableexport GENUSCORE_LICENSE_PATH=/path/to/license.jsonDynamicGraph
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.ndarrayCompute shortest paths from source to all nodes (full computation).
update_shortest_paths(source: int, max_iterations: int = 10) → np.ndarrayIncrementally 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)) → OptResultSolve 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) → OptResultSolve 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.
- Documentation: You're reading it!
- Examples: View code examples
- Email: support@genuscore.com
- Enterprise: Priority support with SLA for Enterprise licenses