mxtaltools.crystal_building.crystal_latent_transforms
- class mxtaltools.crystal_building.crystal_latent_transforms.AunitTransform(asym_unit_dict, max_z_prime: int = 1)[source]
Bases:
Module
- class mxtaltools.crystal_building.crystal_latent_transforms.BoundedTransform(min_val, max_val, slope=1.0, eps=1e-06, bias: float = 0.0)[source]
Bases:
Module
- class mxtaltools.crystal_building.crystal_latent_transforms.CompositeTransform(transforms: list[Module])[source]
Bases:
Module
- class mxtaltools.crystal_building.crystal_latent_transforms.IdentityTransform[source]
Bases:
Module
- class mxtaltools.crystal_building.crystal_latent_transforms.LogNormalTransform(mean_log: float = 0.5, std_log: float = 0.35, eps: float = 1e-06, exp_min: float = None, exp_max: float = None)[source]
Bases:
Module
- class mxtaltools.crystal_building.crystal_latent_transforms.PhiTransform(eps: float = 1e-06)[source]
Bases:
Module
- class mxtaltools.crystal_building.crystal_latent_transforms.ProbitTransform(eps: float = 1e-06)[source]
Bases:
Module
- class mxtaltools.crystal_building.crystal_latent_transforms.RTransform(eps: float = 1e-06)[source]
Bases:
Module
- class mxtaltools.crystal_building.crystal_latent_transforms.RotationTransform(eps: float = 1e-06, mode: str = 'linear')[source]
Bases:
Module- forward(latent: Tensor) Tensor[source]
Maps latent vector (ℝ³) to rotation vector (SO(3)) using canonical z > 0 encoding and norm bounding.
- class mxtaltools.crystal_building.crystal_latent_transforms.SquashingTransform(min_val, max_val, eps=0.01, threshold: float = 5.0, softness: float = 5.0)[source]
Bases:
Module- forward(latent: Tensor) Tensor[source]
Ultra-smooth soft clipper with gradual derivative transition using PyTorch
Parameters:
- xtorch.Tensor
Input tensor
- thresholdfloat
Point where transition becomes noticeable (not abrupt)
- sat_levelfloat
Maximum output level (saturation point)
- softnessfloat
Controls how gradual the transition is (higher = more gradual)
Returns:
- torch.Tensor
Soft-clipped output with very smooth derivative
- inverse(squashed: Tensor) Tensor[source]
Analytical inverse of the smooth soft clip function
Parameters:
- ytorch.Tensor
Output from the soft clip function (input to inverse)
- thresholdfloat
Same threshold parameter used in forward function
- sat_levelfloat
Same saturation level used in forward function
- softnessfloat
Same softness parameter used in forward function
Returns:
- torch.Tensor
Original input x that would produce output y
- class mxtaltools.crystal_building.crystal_latent_transforms.ThetaTransform(eps: float = 1e-06)[source]
Bases:
Module
- class mxtaltools.crystal_building.crystal_latent_transforms.UnitToPMUnit(eps: float = 1e-06)[source]
Bases:
Module
- class mxtaltools.crystal_building.crystal_latent_transforms.UnitTransform(max_z_prime: int = 1)[source]
Bases:
Module
- mxtaltools.crystal_building.crystal_latent_transforms.compute_niggli_overlap(a, al, b, be, c, ga)[source]
- mxtaltools.crystal_building.crystal_latent_transforms.enforce_niggli_plane(cell_lengths, cell_angles, mode, eps=1e-06)[source]
enforces the condition ab * ga_cos + ac * be_cos + bc * al_cos >= 0 ‘mirror’ mode is for random samples, and symmetrically puts them on the correct side of the plane ‘shift’ mode shifts offending samples to the nearest boundary of the good plane