SLV: a software for real root isolation

Elias P. Tsigaridas
{"title":"SLV: a software for real root isolation","authors":"Elias P. Tsigaridas","doi":"10.1145/3015306.3015317","DOIUrl":null,"url":null,"abstract":"The problem of isolating the real roots of a univariate polynomial with integer coefficients is an important problem in computational mathematics. Given a polynomial with integer coefficients, [EQUATION], the objective is to isolate the real roots of f, that is to compute intervals with rational endpoints that contain one and only one root of f. SLV is an open source software package written in C that provides functions for isolating the real roots of univariate polynomials with integer coefficients. It also provides functionality to approximate the isolated roots up to an arbitrary precision. Currently, it is realizes a subdivision algorithm based on Descartes' rule of sign, with modifications to improve its performance. SLV assumes that the input is a square-free polynomial. It performs all the operations using exact arithmetic based on the library gmp and it exploits as much as possible computations with dyadic numbers, that is numbers of the form a/2k where a and k are integers. It builds upon a constant memory variant of Descartes' rule of sign [3]. To minimize the number of allocations in the memory we wrote a small wrapper to use the queue.h library of OpenBSD, in order to have access to a fast implementation of lists and queues. Even though queue.h is written in C, it is a library that follows the generic programming paradigm, and if it is programmed carefully, it could be used with various data sets.","PeriodicalId":7093,"journal":{"name":"ACM Commun. Comput. Algebra","volume":"25 1","pages":"117-120"},"PeriodicalIF":0.0000,"publicationDate":"2016-11-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"7","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Commun. Comput. Algebra","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3015306.3015317","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 7

Abstract

The problem of isolating the real roots of a univariate polynomial with integer coefficients is an important problem in computational mathematics. Given a polynomial with integer coefficients, [EQUATION], the objective is to isolate the real roots of f, that is to compute intervals with rational endpoints that contain one and only one root of f. SLV is an open source software package written in C that provides functions for isolating the real roots of univariate polynomials with integer coefficients. It also provides functionality to approximate the isolated roots up to an arbitrary precision. Currently, it is realizes a subdivision algorithm based on Descartes' rule of sign, with modifications to improve its performance. SLV assumes that the input is a square-free polynomial. It performs all the operations using exact arithmetic based on the library gmp and it exploits as much as possible computations with dyadic numbers, that is numbers of the form a/2k where a and k are integers. It builds upon a constant memory variant of Descartes' rule of sign [3]. To minimize the number of allocations in the memory we wrote a small wrapper to use the queue.h library of OpenBSD, in order to have access to a fast implementation of lists and queues. Even though queue.h is written in C, it is a library that follows the generic programming paradigm, and if it is programmed carefully, it could be used with various data sets.
SLV:实现真正根隔离的软件
整数系数单变量多项式的实根分离问题是计算数学中的一个重要问题。给定一个整数系数多项式[EQUATION],目标是隔离f的实根,即计算具有包含且仅包含f的一个根的有理端点的区间。SLV是一个用C编写的开源软件包,提供了隔离整数系数单变量多项式的实根的函数。它还提供了将孤立根近似到任意精度的功能。目前,它实现了一种基于笛卡儿符号规则的细分算法,并对其进行了改进以提高其性能。SLV假设输入是一个无平方多项式。它使用基于库gmp的精确算术来执行所有操作,并利用尽可能多的二进数计算,即形式为a/2k的数字,其中a和k是整数。它建立在笛卡尔符号规则b[3]的恒定记忆变体上。为了尽量减少内存中的分配数量,我们编写了一个小包装器来使用OpenBSD的queue.h库,以便访问列表和队列的快速实现。尽管queue.h是用C编写的,但它是一个遵循泛型编程范例的库,如果对它进行仔细编程,它可以用于各种数据集。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信