//! GPU tensor abstraction — re-exports from `ml_core::cuda_autograd::stream_ops`.
//!
//! The canonical implementations of `StreamTensor`, `StreamLinear`, and all
//! element-wise ops live in `ml-core`. This module re-exports them under the
//! legacy names `GpuTensor` / `GpuLinear` used throughout `ml-supervised`.

// Re-export the canonical types under their local names.
pub use ml_core::cuda_autograd::stream_ops::StreamTensor as GpuTensor;
pub use ml_core::cuda_autograd::stream_ops::StreamLinear as GpuLinear;

// Re-export all free functions.
pub use ml_core::cuda_autograd::stream_ops::{
    gpu_abs,
    gpu_add,
    gpu_add_scalar,
    gpu_affine,
    gpu_broadcast_add_col,
    gpu_broadcast_mul_col,
    gpu_cat_dim0,
    gpu_cat_dim1,
    gpu_clamp,
    gpu_cos,
    gpu_div,
    gpu_elu,
    gpu_exp,
    gpu_eye,
    gpu_flatten,
    gpu_floor,
    gpu_full,
    gpu_gather_dim0,
    gpu_layer_norm,
    gpu_log,
    gpu_matmul,
    gpu_max_scalar,
    gpu_mean_all,
    gpu_mean_keepdim_last,
    gpu_minimum,
    gpu_mul,
    gpu_narrow_2d,
    gpu_neg,
    gpu_ones,
    gpu_recip,
    gpu_relu,
    gpu_scale,
    gpu_scalar_sub,
    gpu_select_dim1,
    gpu_sigmoid,
    gpu_silu,
    gpu_sin,
    gpu_softmax,
    gpu_sqr,
    gpu_sqrt,
    gpu_squeeze,
    gpu_stack_2d,
    gpu_stack_tensors,
    gpu_sub,
    gpu_sum_dim,
    gpu_tanh,
    gpu_transpose,
    gpu_unsqueeze,
    gpu_unsqueeze_broadcast,
};
