You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
4.0 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual documents how to install and use the Multiple Precision
Floating-Point Reliable Library, version 3.1.4.
Copyright 1991, 1993-2016 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under
the terms of the GNU Free Documentation License, Version 1.2 or any later
version published by the Free Software Foundation; with no Invariant Sections,
with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the
license is included in GNU Free Documentation License. -->
<!-- Created by GNU Texinfo 6.4, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Memory Handling (GNU MPFR 3.1.4)</title>
<meta name="description" content="How to install and use GNU MPFR, a library for reliable multiple precision
floating-point arithmetic, version 3.1.4.">
<meta name="keywords" content="Memory Handling (GNU MPFR 3.1.4)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="MPFR-Basics.html#MPFR-Basics" rel="up" title="MPFR Basics">
<link href="MPFR-Interface.html#MPFR-Interface" rel="next" title="MPFR Interface">
<link href="Exceptions.html#Exceptions" rel="prev" title="Exceptions">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<a name="Memory-Handling"></a>
<div class="header">
<p>
Previous: <a href="Exceptions.html#Exceptions" accesskey="p" rel="prev">Exceptions</a>, Up: <a href="MPFR-Basics.html#MPFR-Basics" accesskey="u" rel="up">MPFR Basics</a> &nbsp; [<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Memory-Handling-1"></a>
<h3 class="section">4.7 Memory Handling</h3>
<p>MPFR functions may create caches, e.g., when computing constants such
as <em>Pi</em>, either because the user has called a function like
<code>mpfr_const_pi</code> directly or because such a function was called
internally by the MPFR library itself to compute some other function.
</p>
<p>At any time, the user can free the various caches with
<code>mpfr_free_cache</code>. It is strongly advised to do that before
terminating a thread, or before exiting when using tools like
&lsquo;<samp>valgrind</samp>&rsquo; (to avoid memory leaks being reported).
</p>
<p>MPFR internal data such as flags, the exponent range, the default
precision and rounding mode, and caches (i.e., data that are not
accessed via parameters) are either global (if MPFR has not been
compiled as thread safe) or per-thread (thread local storage, TLS).
The initial values of TLS data after a thread is created entirely
depend on the compiler and thread implementation (MPFR simply does
a conventional variable initialization, the variables being declared
with an implementation-defined TLS specifier).
</p>
</body>
</html>