1
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
3
<title>Tablix: cache.c File Reference</title>
4
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
5
<link href="tabs.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.4.6 -->
7
<!-- Generated by Doxygen 1.5.2 -->
10
10
<li><a href="index.html"><span>Main Page</span></a></li>
11
11
<li><a href="annotated.html"><span>Data Structures</span></a></li>
12
<li id="current"><a href="files.html"><span>Files</span></a></li>
12
<li class="current"><a href="files.html"><span>Files</span></a></li>
16
17
<li><a href="files.html"><span>File List</span></a></li>
17
18
<li><a href="globals.html"><span>Globals</span></a></li>
19
21
<h1>cache.c File Reference</h1>Caching of timetable fitness values. <a href="#_details">More...</a>
21
23
<code>#include <stdlib.h></code><br>
68
70
Caching of timetable fitness values.
70
72
<hr><h2>Function Documentation</h2>
71
<a class="anchor" name="36f1faee4cd72c960e08697d611770ac"></a><!-- doxytag: member="cache.c::cache_find" ref="36f1faee4cd72c960e08697d611770ac" args="(table *tab)" --><p>
72
<table class="mdTable" cellpadding="2" cellspacing="0">
75
<table cellpadding="0" cellspacing="0" border="0">
73
<a class="anchor" name="36f1faee4cd72c960e08697d611770ac"></a><!-- doxytag: member="cache.c::cache_find" ref="36f1faee4cd72c960e08697d611770ac" args="(table *tab)" -->
75
<div class="memproto">
76
<table class="memname">
77
<td class="md" nowrap valign="top">static int cache_find </td>
78
<td class="md" valign="top">( </td>
79
<td class="md" nowrap valign="top"><a class="el" href="structtable__t.html">table</a> * </td>
80
<td class="mdname1" valign="top" nowrap> <em>tab</em> </td>
81
<td class="md" valign="top"> ) </td>
82
<td class="md" nowrap><code> [static]</code></td>
78
<td class="memname">static int cache_find </td>
80
<td class="paramtype"><a class="el" href="structtable__t.html">table</a> * </td>
81
<td class="paramname"> <em>tab</em> </td>
82
<td> ) </td>
83
<td width="100%"><code> [static]</code></td>
88
<table cellspacing="5" cellpadding="0" border="0">
96
90
Find a matching timetable in fitness cache.
100
94
<tr><td valign="top"></td><td valign="top"><em>tab</em> </td><td>Timetable to search for. </td></tr>
103
<dl compact><dt><b>Returns:</b></dt><dd>Cache line number if a matching timetable was found in cache or -1 if no match was found. </dd></dl>
107
<a class="anchor" name="e0950b2f623dda0ddea2f398349f9c22"></a><!-- doxytag: member="cache.c::cache_init" ref="e0950b2f623dda0ddea2f398349f9c22" args="()" --><p>
108
<table class="mdTable" cellpadding="2" cellspacing="0">
111
<table cellpadding="0" cellspacing="0" border="0">
97
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Cache line number if a matching timetable was found in cache or -1 if no match was found. </dd></dl>
101
<a class="anchor" name="e0950b2f623dda0ddea2f398349f9c22"></a><!-- doxytag: member="cache.c::cache_init" ref="e0950b2f623dda0ddea2f398349f9c22" args="()" -->
102
<div class="memitem">
103
<div class="memproto">
104
<table class="memname">
113
<td class="md" nowrap valign="top">int cache_init </td>
114
<td class="md" valign="top">( </td>
115
<td class="mdname1" valign="top" nowrap> </td>
116
<td class="md" valign="top"> ) </td>
117
<td class="md" nowrap></td>
106
<td class="memname">int cache_init </td>
108
<td class="paramname"> </td>
109
<td> ) </td>
110
<td width="100%"></td>
123
<table cellspacing="5" cellpadding="0" border="0">
131
117
Prepare fitness cache for use.
133
Must be run after <a class="el" href="xmlsup_8c.html#4f2ac0a3cc304138b6ec4b4fa03495f9">parser_main()</a>.<p>
134
<dl compact><dt><b>Returns:</b></dt><dd>0 on success and -1 on error. </dd></dl>
138
<a class="anchor" name="a9ee2330a1be2ad7ebac4bcee0bee811"></a><!-- doxytag: member="cache.c::cache_table_changed" ref="a9ee2330a1be2ad7ebac4bcee0bee811" args="(table *t1, table *t2)" --><p>
139
<table class="mdTable" cellpadding="2" cellspacing="0">
142
<table cellpadding="0" cellspacing="0" border="0">
144
<td class="md" nowrap valign="top">static int cache_table_changed </td>
145
<td class="md" valign="top">( </td>
146
<td class="md" nowrap valign="top"><a class="el" href="structtable__t.html">table</a> * </td>
147
<td class="mdname" nowrap> <em>t1</em>, </td>
150
<td class="md" nowrap align="right"></td>
152
<td class="md" nowrap><a class="el" href="structtable__t.html">table</a> * </td>
153
<td class="mdname" nowrap> <em>t2</em></td>
157
<td class="md">) </td>
158
<td class="md" colspan="2"><code> [static]</code></td>
119
Must be run after <a class="el" href="xmlsup_8c.html#4f2ac0a3cc304138b6ec4b4fa03495f9" title="Parses an XML configuration file.">parser_main()</a>.<p>
120
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success and -1 on error. </dd></dl>
124
<a class="anchor" name="a9ee2330a1be2ad7ebac4bcee0bee811"></a><!-- doxytag: member="cache.c::cache_table_changed" ref="a9ee2330a1be2ad7ebac4bcee0bee811" args="(table *t1, table *t2)" -->
125
<div class="memitem">
126
<div class="memproto">
127
<table class="memname">
129
<td class="memname">static int cache_table_changed </td>
131
<td class="paramtype"><a class="el" href="structtable__t.html">table</a> * </td>
132
<td class="paramname"> <em>t1</em>, </td>
135
<td class="paramkey"></td>
137
<td class="paramtype"><a class="el" href="structtable__t.html">table</a> * </td>
138
<td class="paramname"> <em>t2</em></td><td> </td>
143
<td></td><td></td><td width="100%"><code> [static]</code></td>
164
<table cellspacing="5" cellpadding="0" border="0">
172
150
Compare variable chromosomes of two timetables.
177
155
<tr><td valign="top"></td><td valign="top"><em>t2</em> </td><td>Pointer to the second timetable structure. </td></tr>
180
<dl compact><dt><b>Returns:</b></dt><dd>0 if timetables have identical variable chromosomes or 1 if not. </dd></dl>
184
<a class="anchor" name="1fad8a10c6ef391e06d54e9e6ecd0aed"></a><!-- doxytag: member="cache.c::cache_table_copy" ref="1fad8a10c6ef391e06d54e9e6ecd0aed" args="(table *dest, table *source)" --><p>
185
<table class="mdTable" cellpadding="2" cellspacing="0">
188
<table cellpadding="0" cellspacing="0" border="0">
190
<td class="md" nowrap valign="top">static void cache_table_copy </td>
191
<td class="md" valign="top">( </td>
192
<td class="md" nowrap valign="top"><a class="el" href="structtable__t.html">table</a> * </td>
193
<td class="mdname" nowrap> <em>dest</em>, </td>
196
<td class="md" nowrap align="right"></td>
198
<td class="md" nowrap><a class="el" href="structtable__t.html">table</a> * </td>
199
<td class="mdname" nowrap> <em>source</em></td>
203
<td class="md">) </td>
204
<td class="md" colspan="2"><code> [static]</code></td>
158
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if timetables have identical variable chromosomes or 1 if not. </dd></dl>
162
<a class="anchor" name="1fad8a10c6ef391e06d54e9e6ecd0aed"></a><!-- doxytag: member="cache.c::cache_table_copy" ref="1fad8a10c6ef391e06d54e9e6ecd0aed" args="(table *dest, table *source)" -->
163
<div class="memitem">
164
<div class="memproto">
165
<table class="memname">
167
<td class="memname">static void cache_table_copy </td>
169
<td class="paramtype"><a class="el" href="structtable__t.html">table</a> * </td>
170
<td class="paramname"> <em>dest</em>, </td>
173
<td class="paramkey"></td>
175
<td class="paramtype"><a class="el" href="structtable__t.html">table</a> * </td>
176
<td class="paramname"> <em>source</em></td><td> </td>
181
<td></td><td></td><td width="100%"><code> [static]</code></td>
210
<table cellspacing="5" cellpadding="0" border="0">
218
188
Copy variable chromosomes and fitness information from source to destination timetable.
223
193
<tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>Pointer to the source timetable. </td></tr>
229
<a class="anchor" name="b8182711d3c4bc8abf36c7f2428d01c3"></a><!-- doxytag: member="cache.c::cache_table_fitness" ref="b8182711d3c4bc8abf36c7f2428d01c3" args="(table *tab)" --><p>
230
<table class="mdTable" cellpadding="2" cellspacing="0">
233
<table cellpadding="0" cellspacing="0" border="0">
199
<a class="anchor" name="b8182711d3c4bc8abf36c7f2428d01c3"></a><!-- doxytag: member="cache.c::cache_table_fitness" ref="b8182711d3c4bc8abf36c7f2428d01c3" args="(table *tab)" -->
200
<div class="memitem">
201
<div class="memproto">
202
<table class="memname">
235
<td class="md" nowrap valign="top">void cache_table_fitness </td>
236
<td class="md" valign="top">( </td>
237
<td class="md" nowrap valign="top"><a class="el" href="structtable__t.html">table</a> * </td>
238
<td class="mdname1" valign="top" nowrap> <em>tab</em> </td>
239
<td class="md" valign="top"> ) </td>
240
<td class="md" nowrap></td>
204
<td class="memname">void cache_table_fitness </td>
206
<td class="paramtype"><a class="el" href="structtable__t.html">table</a> * </td>
207
<td class="paramname"> <em>tab</em> </td>
208
<td> ) </td>
209
<td width="100%"></td>
246
<table cellspacing="5" cellpadding="0" border="0">
254
216
Assign a fitness to a table by first checking the cache and then calling all fitness functions.
256
Uses <a class="el" href="modsup_8c.html#26b3266f472c60907a5fc56959f290b5">table_fitness()</a> if no matching timetable was found in fitness cache.<p>
218
Uses <a class="el" href="modsup_8c.html#26b3266f472c60907a5fc56959f290b5" title="Assign a fitness to a table by calling all fitness functions.">table_fitness()</a> if no matching timetable was found in fitness cache.<p>
257
219
<dl compact><dt><b>Parameters:</b></dt><dd>
258
220
<table border="0" cellspacing="2" cellpadding="0">
259
221
<tr><td valign="top"></td><td valign="top"><em>tab</em> </td><td>Pointer to the table to be fitnessd. </td></tr>
265
227
<hr><h2>Variable Documentation</h2>
266
<a class="anchor" name="de778e82fe9005cbbf5fe3064712e599"></a><!-- doxytag: member="cache.c::cache_array" ref="de778e82fe9005cbbf5fe3064712e599" args="" --><p>
267
<table class="mdTable" cellpadding="2" cellspacing="0">
270
<table cellpadding="0" cellspacing="0" border="0">
228
<a class="anchor" name="de778e82fe9005cbbf5fe3064712e599"></a><!-- doxytag: member="cache.c::cache_array" ref="de778e82fe9005cbbf5fe3064712e599" args="" -->
229
<div class="memitem">
230
<div class="memproto">
231
<table class="memname">
272
<td class="md" nowrap valign="top"><a class="el" href="structtable__t.html">table</a>** <a class="el" href="cache_8c.html#de778e82fe9005cbbf5fe3064712e599">cache_array</a> = NULL<code> [static]</code> </td>
233
<td class="memname"><a class="el" href="structtable__t.html">table</a>** <a class="el" href="cache_8c.html#de778e82fe9005cbbf5fe3064712e599">cache_array</a> = NULL<code> [static]</code> </td>
278
<table cellspacing="5" cellpadding="0" border="0">
286
240
Cache of timetable fitness values.
288
This is an array of <em>par_cachesize</em> timetable structures. Only variable chromosomes and fitness values (members <a class="el" href="structtable__t.html#14ee6925a8df5523393e746e7512292d">table_t::fitness</a>, <a class="el" href="structtable__t.html#57b722b09c7c767e2755b01a7f315615">table_t::possible</a> and <a class="el" href="structtable__t.html#014eae0e1062314515ea3752c5584149">table_t::subtotals</a>) are valid in these structures. As far as caching logic is concerned if two timetables have identical variable chromosomes they are identical. </td>
291
<hr size="1"><address style="align: right;"><small>Generated on Sun May 28 16:48:03 2006 for Tablix by
242
This is an array of <em>par_cachesize</em> timetable structures. Only variable chromosomes and fitness values (members <a class="el" href="structtable__t.html#14ee6925a8df5523393e746e7512292d" title="Fitness of this individual. If less than 0 then this individual needs to be evaluated...">table_t::fitness</a>, <a class="el" href="structtable__t.html#57b722b09c7c767e2755b01a7f315615" title="Set to 1 if this structures describes an acceptable solution to the timetabling problem...">table_t::possible</a> and <a class="el" href="structtable__t.html#014eae0e1062314515ea3752c5584149" title="Array of n integers, where n is the number of fitness functions used, containing...">table_t::subtotals</a>) are valid in these structures. As far as caching logic is concerned if two timetables have identical variable chromosomes they are identical.
245
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jul 3 13:23:35 2007 for Tablix by
292
246
<a href="http://www.doxygen.org/index.html">
293
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
247
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>