1
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>BitMagic: sample1.cpp Source File</title>
3
<title>BitMagic: bm.h File Reference</title>
4
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
6
<!-- Generated by Doxygen 1.4.1 -->
7
7
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="examples.html">Examples</a></div>
9
<a class="el" href="dir_000001.html">samples</a> / <a class="el" href="dir_000002.html">sample1</a></div>
10
<h1>sample1.cpp</h1><a href="a00083.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/*</span>
11
00002 <span class="comment">Copyright(c) 2002-2005 Anatoliy Kuznetsov(anatoliy_kuznetsov at yahoo.com)</span>
12
00003 <span class="comment"></span>
13
00004 <span class="comment">Permission is hereby granted, free of charge, to any person </span>
14
00005 <span class="comment">obtaining a copy of this software and associated documentation </span>
15
00006 <span class="comment">files (the "Software"), to deal in the Software without restriction, </span>
16
00007 <span class="comment">including without limitation the rights to use, copy, modify, merge, </span>
17
00008 <span class="comment">publish, distribute, sublicense, and/or sell copies of the Software, </span>
18
00009 <span class="comment">and to permit persons to whom the Software is furnished to do so, </span>
19
00010 <span class="comment">subject to the following conditions:</span>
20
00011 <span class="comment"></span>
21
00012 <span class="comment">The above copyright notice and this permission notice shall be included </span>
22
00013 <span class="comment">in all copies or substantial portions of the Software.</span>
23
00014 <span class="comment"></span>
24
00015 <span class="comment">THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, </span>
25
00016 <span class="comment">EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES </span>
26
00017 <span class="comment">OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. </span>
27
00018 <span class="comment">IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, </span>
28
00019 <span class="comment">DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, </span>
29
00020 <span class="comment">ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR </span>
30
00021 <span class="comment">OTHER DEALINGS IN THE SOFTWARE.</span>
31
00022 <span class="comment">*/</span>
32
00023 <span class="comment"></span>
33
00024 <span class="comment">/** \example sample1.cpp</span>
34
00025 <span class="comment"> Example of how to use bvector template class to set</span>
35
00026 <span class="comment"> bits and then retrieve indexes of ON bits.</span>
36
00027 <span class="comment"> </span>
37
00028 <span class="comment"> For more information please visit: http://bmagic.sourceforge.net</span>
38
00029 <span class="comment"></span>
39
00030 <span class="comment"> \sa bm::bvector<>::get_next() </span>
40
00031 <span class="comment"> \sa bm::bvector<>::get_first() </span>
41
00032 <span class="comment"> \sa bm::bvector<>::set()</span>
42
00033 <span class="comment"> \sa bm::bvector<>::count() </span>
43
00034 <span class="comment"> \sa bm::bvector<>::clear()</span>
44
00035 <span class="comment"> </span>
45
00036 <span class="comment"> */</span>
48
00039 <span class="preprocessor">#include <iostream></span>
49
00040 <span class="preprocessor">#include "<a class="code" href="a00074.html">bm.h</a>"</span>
51
00042 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
53
<a name="l00044"></a><a class="code" href="a00083.html#a0">00044</a> <span class="keywordtype">int</span> <a class="code" href="a00083.html#a0">main</a>(<span class="keywordtype">void</span>)
55
00046 <a class="code" href="a00048.html">bm::bvector<></a> bv; <span class="comment">// Bitvector variable declaration.</span>
57
00048 cout << bv.<a class="code" href="a00048.html#a26">count</a>() << endl;
59
00050 <span class="comment">// Set some bits.</span>
61
00052 bv.<a class="code" href="a00048.html#a19">set</a>(10);
62
00053 bv.<a class="code" href="a00048.html#a19">set</a>(100);
63
00054 bv.<a class="code" href="a00048.html#a19">set</a>(1000000);
65
00056 <span class="comment">// New bitvector's count.</span>
67
00058 cout << bv.<a class="code" href="a00048.html#a26">count</a>() << endl;
70
00061 <span class="comment">// Print the bitvector.</span>
72
00063 <span class="keywordtype">unsigned</span> value = bv.<a class="code" href="a00048.html#a42">get_first</a>();
73
00064 <span class="keywordflow">do</span>
75
00066 cout << value;
76
00067 value = bv.<a class="code" href="a00048.html#a43">get_next</a>(value);
77
00068 <span class="keywordflow">if</span> (value)
79
00070 cout << <span class="stringliteral">","</span>;
81
00072 <span class="keywordflow">else</span>
83
00074 <span class="keywordflow">break</span>;
85
00076 } <span class="keywordflow">while</span>(1);
87
00078 cout << endl;
89
00080 bv.<a class="code" href="a00048.html#a24">clear</a>(); <span class="comment">// Clean up.</span>
91
00082 cout << bv.<a class="code" href="a00048.html#a26">count</a>() << endl;
93
00084 <span class="comment">// We also can use operators to set-clear bits;</span>
95
00086 bv[10] = <span class="keyword">true</span>;
96
00087 bv[100] = <span class="keyword">true</span>;
97
00088 bv[10000] = <span class="keyword">true</span>;
99
00090 cout << bv.<a class="code" href="a00048.html#a26">count</a>() << endl;
101
00092 <span class="keywordflow">if</span> (bv[10])
103
00094 bv[10] = <span class="keyword">false</span>;
106
00097 cout << bv.<a class="code" href="a00048.html#a26">count</a>() << endl;
108
00099 <span class="keywordflow">return</span> 0;
111
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Apr 20 13:28:46 2006 for BitMagic by
9
<a class="el" href="dir_000000.html">src</a></div>
10
<h1>bm.h File Reference</h1><code>#include <string.h></code><br>
11
<code>#include <assert.h></code><br>
12
<code>#include <limits.h></code><br>
13
<code>#include <iterator></code><br>
14
<code>#include "<a class="el" href="a00139.html">bmconst.h</a>"</code><br>
15
<code>#include "<a class="el" href="a00140.html">bmdef.h</a>"</code><br>
16
<code>#include "<a class="el" href="a00142.html">bmsse2.h</a>"</code><br>
17
<code>#include "bmfwd.h"</code><br>
18
<code>#include "<a class="el" href="a00141.html">bmfunc.h</a>"</code><br>
19
<code>#include "<a class="el" href="a00144.html">bmvmin.h</a>"</code><br>
20
<code>#include "<a class="el" href="a00145.html">encoding.h</a>"</code><br>
21
<code>#include "bmalloc.h"</code><br>
22
<code>#include "bmblocks.h"</code><br>
23
<code>#include "<a class="el" href="a00143.html">bmundef.h</a>"</code><br>
26
Include dependency graph for bm.h:<p><center><img src="a00165.png" border="0" usemap="#bm.h_map" alt=""></center>
28
<area href="a00113.html" shape="rect" coords="109,192,179,213" alt="">
29
<area href="a00114.html" shape="rect" coords="116,237,172,259" alt="">
30
<area href="a00116.html" shape="rect" coords="112,283,176,304" alt="">
31
<area href="a00115.html" shape="rect" coords="112,373,176,395" alt="">
32
<area href="a00118.html" shape="rect" coords="111,419,177,440" alt="">
33
<area href="a00119.html" shape="rect" coords="108,464,180,485" alt="">
34
<area href="a00117.html" shape="rect" coords="108,600,180,621" alt="">
38
This graph shows which files directly or indirectly include this file:<p><center><img src="a00166.png" border="0" usemap="#bm.hdep_map" alt=""></center>
39
<map name="bm.hdep_map">
40
<area href="a00112.html" shape="rect" coords="117,6,181,27" alt="">
41
<area href="a00128.html" shape="rect" coords="241,30,329,51" alt="">
42
<area href="a00120.html" shape="rect" coords="107,102,192,123" alt="">
43
<area href="a00121.html" shape="rect" coords="107,147,192,168" alt="">
44
<area href="a00122.html" shape="rect" coords="105,192,193,214" alt="">
45
<area href="a00123.html" shape="rect" coords="107,238,192,259" alt="">
46
<area href="a00124.html" shape="rect" coords="105,283,193,304" alt="">
47
<area href="a00125.html" shape="rect" coords="107,328,192,350" alt="">
48
<area href="a00126.html" shape="rect" coords="107,374,192,395" alt="">
49
<area href="a00127.html" shape="rect" coords="105,419,193,440" alt="">
53
<a href="a00137.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
55
<tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
56
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="a00129.html">bm</a></td></tr>
58
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
59
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00111.html#a0">BMVECTOPT</a></td></tr>
61
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00111.html#a1">BMCOUNT_INC</a></td></tr>
63
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00111.html#a2">BMCOUNT_DEC</a></td></tr>
65
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00111.html#a3">BMCOUNT_VALID</a>(x)</td></tr>
67
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00111.html#a4">BMCOUNT_SET</a>(x)</td></tr>
69
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00111.html#a5">BMCOUNT_ADJ</a>(x)</td></tr>
71
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
72
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="a00108.html">bm::miniset</a>< bm::block_allocator,<br>
73
<a class="el" href="a00129.html#a45">bm::set_total_blocks</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00129.html#a0">mem_save_set</a></td></tr>
75
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
76
<tr><td class="memTemplParams" nowrap colspan="2">template<class Alloc, class MS> </td></tr>
77
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bvector< Alloc, MS > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#a53">operator &</a> (const bvector< Alloc, MS > &v1, const bvector< Alloc, MS > &v2)</td></tr>
79
<tr><td class="memTemplParams" nowrap colspan="2">template<class Alloc, class MS> </td></tr>
80
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bvector< Alloc, MS > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#a54">operator|</a> (const bvector< Alloc, MS > &v1, const bvector< Alloc > &v2)</td></tr>
82
<tr><td class="memTemplParams" nowrap colspan="2">template<class Alloc, class MS> </td></tr>
83
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bvector< Alloc, MS > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#a55">operator^</a> (const bvector< Alloc, MS > &v1, const bvector< Alloc, MS > &v2)</td></tr>
85
<tr><td class="memTemplParams" nowrap colspan="2">template<class Alloc, class MS> </td></tr>
86
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bvector< Alloc, MS > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#a56">operator-</a> (const bvector< Alloc, MS > &v1, const bvector< Alloc, MS > &v2)</td></tr>
89
<hr><h2>Define Documentation</h2>
90
<a class="anchor" name="a5" doxytag="bm.h::BMCOUNT_ADJ"></a><p>
91
<table class="mdTable" cellpadding="2" cellspacing="0">
94
<table cellpadding="0" cellspacing="0" border="0">
96
<td class="md" nowrap valign="top">#define BMCOUNT_ADJ </td>
97
<td class="md" valign="top">( </td>
98
<td class="md" nowrap valign="top">x </td>
99
<td class="mdname1" valign="top" nowrap> </td>
100
<td class="md" valign="top"> ) </td>
101
<td class="md" nowrap></td>
107
<table cellspacing="5" cellpadding="0" border="0">
117
Definition at line <a class="el" href="a00137.html#l00083">83</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
120
<a class="anchor" name="a2" doxytag="bm.h::BMCOUNT_DEC"></a><p>
121
<table class="mdTable" cellpadding="2" cellspacing="0">
124
<table cellpadding="0" cellspacing="0" border="0">
126
<td class="md" nowrap valign="top">#define BMCOUNT_DEC </td>
132
<table cellspacing="5" cellpadding="0" border="0">
142
Definition at line <a class="el" href="a00137.html#l00080">80</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
145
<a class="anchor" name="a1" doxytag="bm.h::BMCOUNT_INC"></a><p>
146
<table class="mdTable" cellpadding="2" cellspacing="0">
149
<table cellpadding="0" cellspacing="0" border="0">
151
<td class="md" nowrap valign="top">#define BMCOUNT_INC </td>
157
<table cellspacing="5" cellpadding="0" border="0">
167
Definition at line <a class="el" href="a00137.html#l00079">79</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
170
<a class="anchor" name="a4" doxytag="bm.h::BMCOUNT_SET"></a><p>
171
<table class="mdTable" cellpadding="2" cellspacing="0">
174
<table cellpadding="0" cellspacing="0" border="0">
176
<td class="md" nowrap valign="top">#define BMCOUNT_SET </td>
177
<td class="md" valign="top">( </td>
178
<td class="md" nowrap valign="top">x </td>
179
<td class="mdname1" valign="top" nowrap> </td>
180
<td class="md" valign="top"> ) </td>
181
<td class="md" nowrap></td>
187
<table cellspacing="5" cellpadding="0" border="0">
197
Definition at line <a class="el" href="a00137.html#l00082">82</a> of file <a class="el" href="a00137.html">bm.h</a>.
199
Referenced by <a class="el" href="a00137.html#l01044">bm::bvector< Alloc, MS >::clear()</a>, and <a class="el" href="a00137.html#l01638">bm::bvector< Alloc, MS >::count()</a>. </td>
202
<a class="anchor" name="a3" doxytag="bm.h::BMCOUNT_VALID"></a><p>
203
<table class="mdTable" cellpadding="2" cellspacing="0">
206
<table cellpadding="0" cellspacing="0" border="0">
208
<td class="md" nowrap valign="top">#define BMCOUNT_VALID </td>
209
<td class="md" valign="top">( </td>
210
<td class="md" nowrap valign="top">x </td>
211
<td class="mdname1" valign="top" nowrap> </td>
212
<td class="md" valign="top"> ) </td>
213
<td class="md" nowrap></td>
219
<table cellspacing="5" cellpadding="0" border="0">
229
Definition at line <a class="el" href="a00137.html#l00081">81</a> of file <a class="el" href="a00137.html">bm.h</a>.
231
Referenced by <a class="el" href="a00137.html#l01283">bm::bvector< Alloc, MS >::bit_and()</a>, <a class="el" href="a00137.html#l01272">bm::bvector< Alloc, MS >::bit_or()</a>, <a class="el" href="a00137.html#l01305">bm::bvector< Alloc, MS >::bit_sub()</a>, <a class="el" href="a00137.html#l01294">bm::bvector< Alloc, MS >::bit_xor()</a>, <a class="el" href="a00137.html#l01131">bm::bvector< Alloc, MS >::forget_count()</a>, <a class="el" href="a00137.html#l01772">bm::bvector< Alloc, MS >::invert()</a>, <a class="el" href="a00137.html#l01118">bm::bvector< Alloc, MS >::recalc_count()</a>, <a class="el" href="a00137.html#l00997">bm::bvector< Alloc, MS >::set()</a>, <a class="el" href="a00137.html#l01615">bm::bvector< Alloc, MS >::set_range()</a>, and <a class="el" href="a00137.html#l01208">bm::bvector< Alloc, MS >::swap()</a>. </td>
234
<a class="anchor" name="a0" doxytag="bm.h::BMVECTOPT"></a><p>
235
<table class="mdTable" cellpadding="2" cellspacing="0">
238
<table cellpadding="0" cellspacing="0" border="0">
240
<td class="md" nowrap valign="top">#define BMVECTOPT </td>
246
<table cellspacing="5" cellpadding="0" border="0">
256
Definition at line <a class="el" href="a00137.html#l00054">54</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
259
<hr><h2>Typedef Documentation</h2>
260
<a class="anchor" name="file_a0" doxytag="bm.h::mem_save_set"></a><p>
261
<table class="mdTable" cellpadding="2" cellspacing="0">
264
<table cellpadding="0" cellspacing="0" border="0">
266
<td class="md" nowrap valign="top">typedef <a class="el" href="a00108.html">bm::miniset</a><bm::block_allocator, <a class="el" href="a00129.html#a45">bm::set_total_blocks</a>> <a class="el" href="a00108.html">bm::mem_save_set</a> </td>
272
<table cellspacing="5" cellpadding="0" border="0">
282
Definition at line <a class="el" href="a00137.html#l00089">89</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
285
<hr><h2>Function Documentation</h2>
286
<a class="anchor" name="file_a53" doxytag="bm.h::operator &"></a><p>
287
<table class="mdTable" cellpadding="2" cellspacing="0">
290
<table cellpadding="0" cellspacing="0" border="0">
292
<td class="mdPrefix" colspan="4">
293
template<class Alloc, class MS> </td>
296
<td class="md" nowrap valign="top">bvector<Alloc, MS> operator & </td>
297
<td class="md" valign="top">( </td>
298
<td class="md" nowrap valign="top">const bvector< Alloc, MS > & </td>
299
<td class="mdname" nowrap> <em>v1</em>, </td>
302
<td class="md" nowrap align="right"></td>
304
<td class="md" nowrap>const bvector< Alloc, MS > & </td>
305
<td class="mdname" nowrap> <em>v2</em></td>
309
<td class="md">) </td>
310
<td class="md" colspan="2"><code> [inline]</code></td>
316
<table cellspacing="5" cellpadding="0" border="0">
326
Definition at line <a class="el" href="a00137.html#l01552">1552</a> of file <a class="el" href="a00137.html">bm.h</a>.
328
References <a class="el" href="a00137.html#l01283">bm::bvector< Alloc, MS >::bit_and()</a>. </td>
331
<a class="anchor" name="file_a56" doxytag="bm.h::operator-"></a><p>
332
<table class="mdTable" cellpadding="2" cellspacing="0">
335
<table cellpadding="0" cellspacing="0" border="0">
337
<td class="mdPrefix" colspan="4">
338
template<class Alloc, class MS> </td>
341
<td class="md" nowrap valign="top">bvector<Alloc, MS> operator- </td>
342
<td class="md" valign="top">( </td>
343
<td class="md" nowrap valign="top">const bvector< Alloc, MS > & </td>
344
<td class="mdname" nowrap> <em>v1</em>, </td>
347
<td class="md" nowrap align="right"></td>
349
<td class="md" nowrap>const bvector< Alloc, MS > & </td>
350
<td class="mdname" nowrap> <em>v2</em></td>
354
<td class="md">) </td>
355
<td class="md" colspan="2"><code> [inline]</code></td>
361
<table cellspacing="5" cellpadding="0" border="0">
371
Definition at line <a class="el" href="a00137.html#l01597">1597</a> of file <a class="el" href="a00137.html">bm.h</a>.
373
References <a class="el" href="a00137.html#l01305">bm::bvector< Alloc, MS >::bit_sub()</a>. </td>
376
<a class="anchor" name="file_a55" doxytag="bm.h::operator^"></a><p>
377
<table class="mdTable" cellpadding="2" cellspacing="0">
380
<table cellpadding="0" cellspacing="0" border="0">
382
<td class="mdPrefix" colspan="4">
383
template<class Alloc, class MS> </td>
386
<td class="md" nowrap valign="top">bvector<Alloc, MS> operator^ </td>
387
<td class="md" valign="top">( </td>
388
<td class="md" nowrap valign="top">const bvector< Alloc, MS > & </td>
389
<td class="mdname" nowrap> <em>v1</em>, </td>
392
<td class="md" nowrap align="right"></td>
394
<td class="md" nowrap>const bvector< Alloc, MS > & </td>
395
<td class="mdname" nowrap> <em>v2</em></td>
399
<td class="md">) </td>
400
<td class="md" colspan="2"><code> [inline]</code></td>
406
<table cellspacing="5" cellpadding="0" border="0">
416
Definition at line <a class="el" href="a00137.html#l01582">1582</a> of file <a class="el" href="a00137.html">bm.h</a>.
418
References <a class="el" href="a00137.html#l01294">bm::bvector< Alloc, MS >::bit_xor()</a>. </td>
421
<a class="anchor" name="file_a54" doxytag="bm.h::operator|"></a><p>
422
<table class="mdTable" cellpadding="2" cellspacing="0">
425
<table cellpadding="0" cellspacing="0" border="0">
427
<td class="mdPrefix" colspan="4">
428
template<class Alloc, class MS> </td>
431
<td class="md" nowrap valign="top">bvector<Alloc, MS> operator| </td>
432
<td class="md" valign="top">( </td>
433
<td class="md" nowrap valign="top">const bvector< Alloc, MS > & </td>
434
<td class="mdname" nowrap> <em>v1</em>, </td>
437
<td class="md" nowrap align="right"></td>
439
<td class="md" nowrap>const bvector< Alloc > & </td>
440
<td class="mdname" nowrap> <em>v2</em></td>
444
<td class="md">) </td>
445
<td class="md" colspan="2"><code> [inline]</code></td>
451
<table cellspacing="5" cellpadding="0" border="0">
461
Definition at line <a class="el" href="a00137.html#l01567">1567</a> of file <a class="el" href="a00137.html">bm.h</a>.
463
References <a class="el" href="a00137.html#l01272">bm::bvector< Alloc, MS >::bit_or()</a>. </td>
466
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 5 14:12:27 2007 for BitMagic by
112
467
<a href="http://www.doxygen.org/index.html">
113
468
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>