import torch
import torch.nn as nn
import torch.nn.functional as F

class Model(nn.Module):
    def __init__(self, scale: torch.Tensor, bias: torch.Tensor, low: torch.Tensor, high: torch.Tensor):
        super(Model, self).__init__()
        self.register_buffer("scale", scale)
        self.register_buffer("bias", bias)
        self.register_buffer("low", low)
        self.register_buffer("high", high)

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        y = torch.sigmoid(x * self.scale + self.bias)
        return torch.clamp(y, float(self.low.item()), float(self.high.item()))

batch_size = 16
dim = 16384

def get_inputs():
    x = torch.randn(batch_size, dim)
    return [x]

def get_init_inputs():
    scale = torch.randn(dim)
    bias = torch.randn(dim)
    low = torch.tensor(0.01, dtype=torch.float32)
    high = torch.tensor(0.99, dtype=torch.float32)
    return [scale, bias, low, high]
