File: Matrix-allocation.html

package info (click to toggle)
gsl-ref-html 2.3-1
  • links: PTS
  • area: non-free
  • in suites: bullseye, buster, sid
  • size: 6,876 kB
  • ctags: 4,574
  • sloc: makefile: 35
file content (109 lines) | stat: -rw-r--r-- 5,335 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 The GSL Team.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Free Software
Needs Free Documentation", the Front-Cover text being "A GNU Manual",
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled "GNU Free Documentation
License".

(a) The Back-Cover Text is: "You have the freedom to copy and modify this
GNU Manual." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library &ndash; Reference Manual: Matrix allocation</title>

<meta name="description" content="GNU Scientific Library &ndash; Reference Manual: Matrix allocation">
<meta name="keywords" content="GNU Scientific Library &ndash; Reference Manual: Matrix allocation">
<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="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="Matrices.html#Matrices" rel="up" title="Matrices">
<link href="Accessing-matrix-elements.html#Accessing-matrix-elements" rel="next" title="Accessing matrix elements">
<link href="Matrices.html#Matrices" rel="previous" title="Matrices">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
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.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Matrix-allocation"></a>
<div class="header">
<p>
Next: <a href="Accessing-matrix-elements.html#Accessing-matrix-elements" accesskey="n" rel="next">Accessing matrix elements</a>, Up: <a href="Matrices.html#Matrices" accesskey="u" rel="up">Matrices</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Matrix-allocation-1"></a>
<h4 class="subsection">8.4.1 Matrix allocation</h4>

<p>The functions for allocating memory to a matrix follow the style of
<code>malloc</code> and <code>free</code>.  They also perform their own error
checking.  If there is insufficient memory available to allocate a matrix
then the functions call the GSL error handler (with an error number of
<code>GSL_ENOMEM</code>) in addition to returning a null pointer.  Thus if you
use the library error handler to abort your program then it isn&rsquo;t
necessary to check every <code>alloc</code>.
</p>
<dl>
<dt><a name="index-gsl_005fmatrix_005falloc"></a>Function: <em>gsl_matrix *</em> <strong>gsl_matrix_alloc</strong> <em>(size_t <var>n1</var>, size_t <var>n2</var>)</em></dt>
<dd><p>This function creates a matrix of size <var>n1</var> rows by <var>n2</var>
columns, returning a pointer to a newly initialized matrix struct. A new
block is allocated for the elements of the matrix, and stored in the
<var>block</var> component of the matrix struct.  The block is &ldquo;owned&rdquo; by the
matrix, and will be deallocated when the matrix is deallocated.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fmatrix_005fcalloc"></a>Function: <em>gsl_matrix *</em> <strong>gsl_matrix_calloc</strong> <em>(size_t <var>n1</var>, size_t <var>n2</var>)</em></dt>
<dd><p>This function allocates memory for a matrix of size <var>n1</var> rows by
<var>n2</var> columns and initializes all the elements of the matrix to zero.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fmatrix_005ffree"></a>Function: <em>void</em> <strong>gsl_matrix_free</strong> <em>(gsl_matrix * <var>m</var>)</em></dt>
<dd><p>This function frees a previously allocated matrix <var>m</var>.  If the
matrix was created using <code>gsl_matrix_alloc</code> then the block
underlying the matrix will also be deallocated.  If the matrix has
been created from another object then the memory is still owned by
that object and will not be deallocated.
</p></dd></dl>




</body>
</html>