check X0^k == 1-exp(X0^k): True
check X0^k == tanh(X0^k): False
init Xk-Y diff = 5719165
init f1 = 0.021134933828816347
Iteration 0: Loss = 5719382.726253
|Xk-Y|_F:  5719056.821856, |X-X0|:  3259.043969
rounded |X_k-Y|_0 = 5719165, f1 =  0.021135, approx slack: 0

Iteration 1: Loss = 1129342.534312
|Xk-Y|_F:  1128019.204710, |X-X0|:  13233.296029
rounded |X_k-Y|_0 = 1717003, f1 =  0.835824, approx slack: 0

Iteration 2: Loss = 737984.692511
|Xk-Y|_F:  735322.011584, |X-X0|:  26626.809263
rounded |X_k-Y|_0 = 849789, f1 =  0.931211, approx slack: 0

Iteration 3: Loss = 689186.712669
|Xk-Y|_F:  685696.310742, |X-X0|:  34904.019266
rounded |X_k-Y|_0 = 756782, f1 =  0.938267, approx slack: 0

Iteration 4: Loss = 534840.458609
|Xk-Y|_F:  530727.804163, |X-X0|:  41126.544462
rounded |X_k-Y|_0 = 533381, f1 =  0.955673, approx slack: 0


Optimized X = tensor([[2.9001e-03, 3.3428e-03, 3.2149e-03,  ..., 3.0779e-03, 3.3272e-03,
         3.7459e-03],
        [0.0000e+00, 0.0000e+00, 8.9840e-04,  ..., 0.0000e+00, 1.3693e-03,
         3.4764e-03],
        [2.8405e-03, 2.9906e-03, 2.9506e-03,  ..., 1.9332e-03, 3.0779e-03,
         3.8465e-03],
        ...,
        [2.8741e-03, 1.0030e+00, 2.9773e-03,  ..., 1.0010e+00, 3.1032e-03,
         3.8177e-03],
        [1.7788e-03, 1.9622e-03, 1.8986e-03,  ..., 2.9153e-03, 2.9808e-03,
         3.4894e-03],
        [1.6569e-03, 1.9038e-03, 1.8158e-03,  ..., 1.8447e-03, 1.9291e-03,
         2.0168e-03]], dtype=torch.float64)
X^k = tensor([[1.0000, 1.0000, 1.0000,  ..., 1.0000, 1.0000, 1.0000],
        [1.0000, 1.0000, 1.0000,  ..., 1.0000, 1.0000, 1.0000],
        [1.0000, 1.0000, 1.0000,  ..., 1.0000, 1.0000, 1.0000],
        ...,
        [1.0000, 1.0000, 1.0000,  ..., 1.0000, 1.0000, 1.0000],
        [1.0000, 1.0000, 1.0000,  ..., 1.0000, 1.0000, 1.0000],
        [1.0000, 1.0000, 1.0000,  ..., 1.0000, 1.0000, 1.0000]],
       dtype=torch.float64)
Y = tensor([[0, 0, 0,  ..., 0, 0, 0],
        [0, 1, 1,  ..., 1, 0, 0],
        [0, 0, 0,  ..., 0, 0, 0],
        ...,
        [0, 1, 1,  ..., 1, 0, 1],
        [0, 0, 0,  ..., 0, 0, 0],
        [0, 0, 0,  ..., 0, 0, 0]], dtype=torch.int8)
Frobenius norm of X^k - Y: 727.5991007183509
L1 norm of X - X0:, 43145.76364416623
X_k rounded = 
tensor([[1., 1., 1.,  ..., 1., 1., 1.],
        [1., 1., 1.,  ..., 1., 1., 1.],
        [1., 1., 1.,  ..., 1., 1., 1.],
        ...,
        [1., 1., 1.,  ..., 1., 1., 1.],
        [1., 1., 1.,  ..., 1., 1., 1.],
        [1., 1., 1.,  ..., 1., 1., 1.]], dtype=torch.float64)
rounded X_k-Y diff = 540443
X rounded = 
tensor([[0., 0., 0.,  ..., 0., 0., 0.],
        [0., 0., 0.,  ..., 0., 0., 0.],
        [0., 0., 0.,  ..., 0., 0., 0.],
        ...,
        [0., 1., 0.,  ..., 1., 0., 0.],
        [0., 0., 0.,  ..., 0., 0., 0.],
        [0., 0., 0.,  ..., 0., 0., 0.]], dtype=torch.float64)
|X-X0|_1 = 0.0
