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/rl/reward_shaping.tern
// Purpose: Reward Functions
// Author:  RFI-IRFOS
// Ref:     https://ternlang.com

// Rewards naturally map to trits. +1 (affirm), 0 (tend), -1 (reject).

fn sparse_reward_trit(goal_reached: trit) -> trit {
    if goal_reached == affirm { return affirm; }
    return tend; // Most of the time, reward is 0
}

fn dense_reward_trit(distance_reduced: trit) -> trit {
    if distance_reduced == affirm { return affirm; }
    if distance_reduced == reject { return reject; }
    return tend;
}

fn curiosity_trit(novelty: trit) -> trit {
    // Intrinsic motivation
    if novelty == affirm { return affirm; }
    return tend; // Not novel
}

fn reward_normalize_trit(raw_reward: float) -> trit {
    if raw_reward > 0.5 { return affirm; }
    if raw_reward < -0.5 { return reject; }
    return tend;
}