![]() |
GemaCoreLib
The GeMA Core library
|
Agrupa rotinas para comparação de valores double. More...
Functions | |
bool | equal (double a, double b, double relTol=GM_DOUBLECMP_RELTOL, double absTol=GM_DOUBLECMP_ABSTOL) |
Funcao para comparar se dois números reais são iguais usando uma tolerância recebida como parâmetro. More... | |
bool | isZero (double a, double absTol) |
Funcao para comparar se o valor a é ou não igual a zero dada uma tolerância absoluta. More... | |
bool | nequal (double a, double b, double relTol=GM_DOUBLECMP_RELTOL, double absTol=GM_DOUBLECMP_ABSTOL) |
Funcao para comparar se dois números reais são diferentes usando uma tolerância recebida como parâmetro. More... | |
bool | lt (double a, double b, double relTol=GM_DOUBLECMP_RELTOL, double absTol=GM_DOUBLECMP_ABSTOL) |
Funcao para comparar se um número real é menor que o outro, usando uma tolerância recebida como parâmetro. More... | |
bool | lte (double a, double b, double relTol=GM_DOUBLECMP_RELTOL, double absTol=GM_DOUBLECMP_ABSTOL) |
Funcao para comparar se um número real é menor ou igual a outro, usando uma tolerância recebida como parâmetro. More... | |
bool | gt (double a, double b, double relTol=GM_DOUBLECMP_RELTOL, double absTol=GM_DOUBLECMP_ABSTOL) |
Funcao para comparar se um número real é maior que o outro, usando uma tolerância recebida como parâmetro. More... | |
bool | gte (double a, double b, double relTol=GM_DOUBLECMP_RELTOL, double absTol=GM_DOUBLECMP_ABSTOL) |
Funcao para comparar se um número real é maior ou igual a outro, usando uma tolerância recebida como parâmetro. More... | |
Agrupa rotinas para comparação de valores double.
Comparação de valores é feita com uma tolerância percentual, garantindo o funcionamento do algortimo para números de magnitudes diversas
Todas as funções recebem duas tolerâncias como argumento. Seus valores padrão devem ser suficientes para a maioria dos casos.
A primeira tolerância, relTol, refere-se a um valor relativo percentual de distância aceitavel entre os números comparados. 1.0E-3 significa uma tolerância de 0.1%
A segunda tolerância é um valor absoluto, usado para resolver problemas quando dois números muito próximos de zero, de sinais opostos ou não, são comparadaos. Deve ser um número muito pequeno.
Referências:
http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
http://realtimecollisiondetection.net/blog/?p=89
http://stackoverflow.com/questions/17333/most-effective-way-for-float-and-double-comparison
|
inline |
Funcao para comparar se dois números reais são iguais usando uma tolerância recebida como parâmetro.
Ver comentários gerais do namespace sobre relTol e absTol
|
inline |
Funcao para comparar se um número real é maior que o outro, usando uma tolerância recebida como parâmetro.
Ver comentários gerais do namespace sobre relTol e absTol
|
inline |
Funcao para comparar se um número real é maior ou igual a outro, usando uma tolerância recebida como parâmetro.
Ver comentários gerais do namespace sobre relTol e absTol
|
inline |
Funcao para comparar se o valor a é ou não igual a zero dada uma tolerância absoluta.
Repare que se um dos valores a ser comparado for 0.0, equal(a, 0.) só será verdadeiro se o teste de diferença absoluta for verdadeiro. Neste caso, o restante da verificação relativa é inútil.
Esta função não tem um valor default para absTol para forçar o usuário a pensar sobre a tolerância desejada de acordo com o problema
|
inline |
Funcao para comparar se um número real é menor que o outro, usando uma tolerância recebida como parâmetro.
Ver comentários gerais do namespace sobre relTol e absTol
|
inline |
Funcao para comparar se um número real é menor ou igual a outro, usando uma tolerância recebida como parâmetro.
Ver comentários gerais do namespace sobre relTol e absTol
|
inline |
Funcao para comparar se dois números reais são diferentes usando uma tolerância recebida como parâmetro.
Ver comentários gerais do namespace sobre relTol e absTol