New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nums (suite du #1443) #6783
Comments
Comment author: administrator
Gros problème: la comparaison ainsi définie sur le type "nat" se
puisque les paires les représentant ont le même signe et des valeurs Même problème avec les rationnels et donc les nums. De plus, même l'égalité est fausse dans le cas de rationnels non La solution actuelle (faire une erreur) est donc préférable.
|
Comment author: administrator Would lead to wrong results of comparison on (negative) big_int, on ratio, and |
Comment author: administrator On Thu, 7 Nov 2002, Xavier Leroy wrote:
Incorrecte ... ça dépend de ce que l'on veut en faire. Si c'est juste pour Il se trouve que j'ai vraiment besoin de cela, parce que je construit des Je ne trouve pas la licence exacte de la bibliothèque BigNum (Je pense que tu ne vas pas aimer la suggestion de faire une fonction
Je pense que ce serait assez facile d'implémenter une sorte de type -- Alain |
Original bug ID: 1445
Reporter: administrator
Status: closed
Resolution: won't fix
Priority: normal
Severity: feature
Category: ~DO NOT USE (was: OCaml general)
Bug description
Voilà, je propose d'ajouter ça dans le fichier nat_stubs.c:
static int custom_compare_nat(value nat1, value nat2)
{
return
(BnCompare
(Bignum_val(nat1), 0,
BnNumDigits(Bignum_val(nat1), 0, Wosize_val(nat1) - 1),
Bignum_val(nat2), 0,
BnNumDigits(Bignum_val(nat2), 0, Wosize_val(nat2) - 1) ) );
}
static long custom_hash_nat(value nat)
{
return (BnGetDigit(Bignum_val(nat), 0));
}
static struct custom_operations nat_operations = {
"_nat",
custom_finalize_default,
custom_compare_nat,
custom_hash_nat,
serialize_nat,
deserialize_nat
};
Ça convient ?
-- Alain
The text was updated successfully, but these errors were encountered: