Skip to content

FloatTryClone

Description

Create a deep copy of a floating-point value.

Parameters

Name Direction Description
value in Float to clone

Returns

true on success, false if cloning fails.

Usage example (Cross-references)

Usage examples (Cross-references)
            Float rhs_scaled      = FloatInit(rhs->significand.bits.allocator);
    
            if (!FloatTryClone(&lhs_scaled, lhs) || !FloatTryClone(&rhs_scaled, rhs) ||
                !float_scale_to_exponent(&lhs_scaled, target_exponent) ||
                !float_scale_to_exponent(&rhs_scaled, target_exponent)) {
        ValidateFloat(value);
        clone = FloatInit(value->significand.bits.allocator);
        (void)FloatTryClone(&clone, value);
        return clone;
    }
    }
    
    bool FloatTryClone(Float *out, Float *value) {
        if (!out || !value) {
            LOG_ERROR("Invalid arguments");
        temp = FloatInit(result->significand.bits.allocator);
    
        if (!FloatTryClone(&lhs, a) || !FloatTryClone(&rhs, b)) {
            FloatDeinit(&lhs);
            FloatDeinit(&rhs);
        ValidateFloat(b);
    
        if (!FloatTryClone(&rhs, b)) {
            return false;
        }
Last updated on