Skip to content

Instantly share code, notes, and snippets.

@NeoVertex1
Created November 20, 2024 21:03
Show Gist options
  • Save NeoVertex1/a0cbd79f1273ad24f3df1b2a6bfb356e to your computer and use it in GitHub Desktop.
Save NeoVertex1/a0cbd79f1273ad24f3df1b2a6bfb356e to your computer and use it in GitHub Desktop.
import torch
from complextensor import ComplexTensor
import logging
# Configure logging for debug output
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger("test_new_tensor")
# Define constants
ψ = 44.8
ξ = 3721.8
ε = 0.28082
τ = 64713.97
π = 3.14159
# Define weights for optimization components
α = 0.5
β = 0.3
# Initialize base tensor T
def initialize_tensor():
logger.debug("Initializing base tensor T.")
real = torch.tensor([
[ψ, ε, 0, π],
[ε, ξ, τ, 0],
[0, τ, π, ε],
[π, 0, ε, ψ]
], dtype=torch.float32)
imag = torch.zeros_like(real) # Initialize imaginary part as zeros
T = ComplexTensor(real, imag)
logger.debug(f"Base tensor T initialized with shape {T.real.shape}.")
return T
# Define resonance matrix R
def compute_resonance_matrix():
logger.debug("Computing resonance matrix R.")
δ, ρ = 0.1, 0.2 # Example values
real = torch.tensor([
[0, δ, ρ, 0],
[δ, 0, 0, ρ],
[ρ, 0, 0, δ],
[0, ρ, δ, 0]
], dtype=torch.float32)
imag = torch.zeros_like(real)
R = ComplexTensor(real, imag)
logger.debug(f"Resonance matrix R initialized with shape {R.real.shape}.")
return R
# Define stability matrix S
def compute_stability_matrix():
logger.debug("Computing stability matrix S.")
η = 0.05 # Example stability factor
real = torch.eye(4, dtype=torch.float32) * η
imag = torch.zeros_like(real)
S = ComplexTensor(real, imag)
logger.debug(f"Stability matrix S initialized with shape {S.real.shape}.")
return S
# Scalar multiplication for ComplexTensor
def scalar_multiply(scalar, tensor):
logger.debug(f"Performing scalar multiplication: scalar={scalar}, tensor shape={tensor.real.shape}.")
return ComplexTensor(tensor.real * scalar, tensor.imag * scalar)
# Compute tensor metrics
def compute_metrics(T):
logger.debug("Computing metrics for tensor.")
entropy = torch.trace(torch.log(T.abs() + 1e-8)).item()
norm = T.abs().norm(p=2).item()
logger.debug(f"Computed metrics - Entropy: {entropy}, Norm: {norm}.")
return entropy, norm
# Normalize tensor to stabilize its norm
def normalize_tensor(T):
logger.debug("Normalizing tensor.")
norm = T.abs().norm(p=2) + 1e-8
normalized_tensor = ComplexTensor(T.real / norm, T.imag / norm)
logger.debug("Tensor normalization complete.")
return normalized_tensor
# Test the optimized tensor
if __name__ == "__main__":
logger.info("Starting tensor optimization test.")
# Initialize tensor and components
T = initialize_tensor()
R = compute_resonance_matrix()
S = compute_stability_matrix()
# Apply optimization
T_evolved = T + scalar_multiply(α, R) + scalar_multiply(β, S)
logger.debug("Tensor evolution completed.")
T_optimized = normalize_tensor(T_evolved)
logger.debug("Tensor optimization completed.")
# Compute and display metrics
initial_entropy, initial_norm = compute_metrics(T_evolved)
optimized_entropy, optimized_norm = compute_metrics(T_optimized)
print("=== Initial Tensor Metrics ===")
print(f"Entropy: {initial_entropy}")
print(f"Norm: {initial_norm}")
print("\n=== Optimized Tensor Metrics ===")
print(f"Entropy: {optimized_entropy}")
print(f"Norm: {optimized_norm}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment