Copyright 2016-2022 James Paul Turner.
Este arquivo faz parte da biblioteca ARPRA.
A biblioteca ARPRA é um software livre: você pode redistribuí -lo e/ou modificá -lo nos termos da licença pública geral GNU Lesser, conforme publicado pela Free Software Foundation, versão 3 da licença ou (por sua opção) qualquer versão posterior.
A biblioteca ARPRA é distribuída na esperança de que seja útil, mas sem qualquer garantia; sem a garantia implícita de comercialização ou aptidão para uma finalidade específica. Veja a licença pública geral menor da GNU para obter mais detalhes.
Você deveria ter recebido uma cópia da licença pública geral da GNU, juntamente com a biblioteca ARPRA. Caso contrário, consulte http://www.gnu.org/license/.
Para qualquer intervalo do ano de direitos autorais especificado como AAAA-ZZZZ Neste pacote, observe que o intervalo especifica todos os anos nesse intervalo fechado.
ARPRA é uma biblioteca C para (AR) BitRary- (P) Recision (R) Ange (A) Nálise de cálculos de ponto flutuante IEEE-754, com base no GNU MPFR. O principal caixa de uso do ARPRA é manter os limites superior e inferior calculados de erro numérico para todas as variáveis, o tempo todo, em um cálculo. O ARPRA usa intervalo misturado/aritmético afinado com redução de termos de desvio para realizar isso.
A aritmética afim é uma variante da aritmética do intervalo, que é responsável por correlações variáveis. Como tal, não sofre com o chamado "problema de dependência", onde os intervalos crescem excessivamente grandes devido à falta de consideração por correlações variáveis. O problema é descrito mais adiante em https://en.wikipedia.org/wiki/Interval_arithmetic#dependency_problem. Ao combinar os resultados da aritmética do intervalo e aritmética afim, evita -se o problema de dependência da aritmética intervalada e a função não linear superestres/sub -quendo o problema da aritmética afim.
A ARPRA implementa aritmética afim usando um back -end do GNU MPFR. O MPFR é uma biblioteca de ponto flutuante de precisão arbitrária, o que significa que as variáveis MPFR de ponto flutuante podem ser de precisão arbitrária. Para obter mais informações, consulte o site do projeto MPFR em http://www.mpfr.org/. Ao implementar a aritmética afinada com um back-end de precisão arbitrária, é possível, por exemplo, testar como uma mudança no esquema de precisão ou integração numérica afeta o erro local e global durante uma simulação numérica longa, sem o intervalo de intervalo regular de 'explosão'.
Para obter mais informações sobre a implementação e os recursos da ARPRA, como redução de termos de corte e desvio de intervalo, consulte o artigo publicado original:
Turner, JP, & Nowotny, T. (2021). ARPRA: Uma biblioteca de análise de faixa de precisão arbitrária. Frontiers in Neuroinformatics, 30.
https://doi.org/10.3389/fninf.2021.632729
O ARPRA segue o paradigma familiar de construção de software GNU/Linux. O procedimento típico de instalação consiste no seguinte.
Se estiver instalando no repositório de origem Git (ou seja, não é um Tarball Dist), o script de configuração e outros arquivos auxiliares precisam ser gerados executando o seguinte comando na raiz do repositório:
autoreconf -i -Wall
Isso gera os arquivos de configuração a partir do Configure.ac e os arquivos makefile.am (observe que o GNU AutoTools deve ser instalado para executar o AutorEconf). Em seguida, execute os comandos de configuração, construa e instale:
./configure
make
sudo make install
Todos os arquivos ARPRA instalados podem ser desinstalados de forma limpa do sistema executando o seguinte comando:
sudo make uninstall
Um conjunto de programas de teste pode ser executado com o seguinte comando:
make check
Todas as contribuições (por exemplo, relatórios de bug, solicitações de recursos, conhecimento especializado, código-fonte e contribuições de documentação) são recebidos com gratidão através do rastreador de problemas https://github.com/arpra-project/arpra/issues ou solicitação de puxar.
O repositório de código -fonte para ARPRA está hospedado no GitHub. Clone usando:
git clone https://github.com/arpra-project/arpra