ternlang-core 0.3.3

Compiler and VM for Ternlang — balanced ternary language with affirm/tend/reject trit semantics, @sparseskip codegen, and BET bytecode execution.
Documentation
// Module:  stdlib/nn/loss/mae.tern
// Purpose: Mean Absolute Error (MAE) for Trit Space
// Author:  RFI-IRFOS
// Ref:     https://ternlang.com

// MAE focuses on absolute difference. In ternlang, distances between 
// -1 and 1 are 2 units, but we represent closeness as affirm.

fn absolute_error_trit(y_true: trit, y_pred: trit) -> trit {
    if y_true == tend { return tend; } 
    if y_pred == tend { return tend; }
    if y_true == y_pred { return affirm; }
    return reject; // Error exists
}

fn mae_trit(y_true: trit[], y_pred: trit[]) -> trit {
    // Averages the absolute error
    return tend;
}

fn median_error_trit(y_true: trit[], y_pred: trit[]) -> trit {
    // Robust to outliers, focuses on the median state
    let state: trit = tend;
    match state {
        affirm => { return affirm; }
        tend   => { return tend;   }
        reject => { return reject; }
    }
}