c448_error_t curve448_scalar_decode(
                                curve448_scalar_t s,
                                const unsigned char ser[C448_SCALAR_BYTES])
{
    unsigned int i;
    c448_dsword_t accum = 0;
    scalar_decode_short(s, ser, C448_SCALAR_BYTES);
    for (i = 0; i < C448_SCALAR_LIMBS; i++)
        accum = (accum + s->limb[i] - sc_p->limb[i]) >> WBITS;
    curve448_scalar_mul(s, s, curve448_scalar_one);
    return c448_succeed_if(~word_is_zero((uint32_t)accum));
}
['c448_error_t curve448_scalar_decode(\n                                curve448_scalar_t s,\n                                const unsigned char ser[C448_SCALAR_BYTES])\n{\n    unsigned int i;\n    c448_dsword_t accum = 0;\n    scalar_decode_short(s, ser, C448_SCALAR_BYTES);\n    for (i = 0; i < C448_SCALAR_LIMBS; i++)\n        accum = (accum + s->limb[i] - sc_p->limb[i]) >> WBITS;\n    curve448_scalar_mul(s, s, curve448_scalar_one);\n    return c448_succeed_if(~word_is_zero((uint32_t)accum));\n}']