Kiss64Random#
- class scikitplot.random.Kiss64Random(int seed: int | None = None)[source]#
Low-level 64-bit KISS RNG with context manager support.
This class provides direct access to the C++ Kiss64Random implementation. For most use cases, prefer KissGenerator or default_rng() instead. Period: ~2^250 (suitable for billions of data points)
- Parameters:
- seedint or None, default=None
Initial seed value. If None, uses default seed (1234567890987654321). Must be in range [0, 2^64-1].
- Attributes:
- default_seedint
Default seed value (1234567890987654321)
seedintKiss64Random.seed: int
- lockthreading.RLock
Thread lock (for shared access)
See also
Kiss32Random32-bit version for smaller datasets
KissRandomFactory function for auto-detecting
KissSeedSequenceSeed sequence for initialization
KissBitGeneratorNumPy-compatible bit generator
KissGeneratorHigh-level generator using this BitGenerator
KissRandomStateInherites from KissGenerator
default_rngConvenience function to create generator
Notes
Period: approximately 2^250
Not cryptographically secure
Recommended for datasets larger than ~16 million points
Slightly slower than Kiss32Random but much longer period
Thread-safe via context manager
Deterministic: same seed → same sequence
Complete pickle/JSON support
Preferred for large-scale applications
Examples
>>> rng = Kiss64Random(42) >>> rng.kiss() # Random uint64 >>> >>> # Context manager (thread-safe) >>> with rng: ... value = rng.kiss() >>> >>> # Serialization >>> import pickle >>> restored = pickle.loads(pickle.dumps(rng))
- default_seed = 1234567890987654321#
- classmethod deserialize(cls, data)#
Deserialize from dict.
- Parameters:
- datadict
Serialized state
- Returns:
- Kiss64Random
Restored instance
Examples
>>> import json >>> rng = Kiss64Random(42) >>> json_str = json.dumps(rng.serialize()) >>> data = json.loads(json_str) >>> restored = Kiss64Random.deserialize(data)
- classmethod from_dict(cls, data)#
Alias for deserialize().
- get_params(self, deep=True)#
Get parameters (sklearn-style).
- Parameters:
- deepbool, default=True
Unused, for sklearn compatibility
- Returns:
- dict
Constructor parameters
Examples
>>> rng = Kiss64Random(42) >>> params = rng.get_params() >>> print(params) {'seed': 42}
- get_state(self)#
Get state dictionary.
- Returns:
- dict
Complete state
Examples
>>> rng = Kiss64Random(42) >>> state = rng.get_state() >>> print(state["seed"]) 42
- index(self, size_t n) size_t#
Generate random index in range [0, n-1].
- kiss(self) uint64_t#
Generate next random 64-bit unsigned integer.
- Returns:
- int
Random value in [0, 2^64-1]
- lock#
!! processed by numpydoc !!
- reset(self, int seed: int) None#
Reset RNG state with new seed.
- Parameters:
seed (int)
- Return type:
None
- seed#
int
Get current seed value.
- Type:
- serialize(self)#
Serialize to JSON-compatible dict.
- Returns:
- dict
JSON-serializable state
Examples
>>> import json >>> rng = Kiss64Random(42) >>> data = rng.serialize() >>> json_str = json.dumps(data)
- set_params(self, **params)#
Set parameters (sklearn-style).
- Parameters:
- **paramsdict
Parameters to set
- Returns:
- self
For chaining
Examples
>>> rng = Kiss64Random(42) >>> rng.set_params(seed=123) >>> print(rng.seed) 123
- set_seed(self, int seed: int) None#
Set new seed (alias for reset).
- Parameters:
seed (int)
- Return type:
None
- set_state(self, state)#
Set state from dictionary.
- Parameters:
- statedict
State from get_state()
Examples
>>> rng1 = Kiss64Random(42) >>> state = rng1.get_state() >>> rng2 = Kiss64Random(0) >>> rng2.set_state(state)
- to_dict(self)#
Alias for serialize().
Gallery examples#
Enhanced KISS Random Generator - Complete Usage Examples