<?xml version="1.0" encoding="ISO-8859-1"?>
<toc>
<book href="index.html" id="id5364247">
<title>IRIS Explorer&#8482; Module Writer's Guide</title>
<bookinfo href="front.html">
<title>Front Matter</title>
</bookinfo>
<preface href="pr01.html" id="id5418772">
<title>Introduction</title>
<section href="pr01.html#id5364501" id="id5364501">
<title>About This Guide</title>
</section>
<section href="pr01.html#id5364597" id="id5364597">
<title>Contents of This Guide</title>
</section>
<section href="pr01.html#id5364781" id="id5364781">
<title>Conventions Used in This Guide</title>
</section>
</preface>
<chapter href="ch01.html" id="id5362566">
<title>Chapter 1. Building a Module</title>
<section href="ch01.html#id5362669" id="id5362669">
<title>Introduction to Module building</title>
</section>
<section href="ch01.html#id5362887" id="id5362887">
<title>Creating the User Function</title>
<section href="ch01.html#id5362903" id="id5362903">
<title>Designing the Example Module</title>
</section>
<section href="ch01.html#id5362933" id="id5362933">
<title>Writing the User Function</title>
<section href="ch01.html#id5362992" id="id5362992">
<title>Example Code and Modules</title>
</section>
<section href="ch01.html#id5363028" id="id5363028">
<title>The C User Function</title>
</section>
<section href="ch01.html#id5363100" id="id5363100">
<title>The Fortran User Function</title>
</section>
</section>
</section>
<section href="ch01.html#id5363315" id="id5363315">
<title>Setting up your Build Environment</title>
<section href="ch01.html#id5363433" id="id5363433">
<title>C or Fortran?</title>
</section>
<section href="ch01.html#id5363470" id="id5363470">
<title>Invoking the Module Builder</title>
<figure href="ch01.html#id5363611" id="id5363611">
<title>Figure 1-1. The Module Builder Window for C Users</title>
</figure>
<figure href="ch01.html#id5363633" id="id5363633">
<title>Figure 1-2. The Module Builder Window for Fortran Users</title>
</figure>
</section>
<section href="ch01.html#id5363651" id="id5363651">
<title>Saving the Module Resources</title>
</section>
<section href="ch01.html#id5363717" id="id5363717">
<title>Quitting the Module Builder</title>
<figure href="ch01.html#id5363741" id="id5363741">
<title>Figure 1-3. Module Builder File Menu</title>
</figure>
</section>
</section>
<section href="ch01.html#id5363780" id="id5363780">
<title>Defining the Internal Structure</title>
<section href="ch01.html#id5363796" id="id5363796">
<title>Creating an Input Port</title>
<figure href="ch01.html#id5363859" id="id5363859">
<title>Figure 1-4. Input Ports Window</title>
</figure>
<section href="ch01.html#id5363883" id="id5363883">
<title>Defining the Data Type</title>
<figure href="ch01.html#id5364019" id="id5364019">
<title>Figure 1-5. The Lattice Constraints Window</title>
</figure>
</section>
<section href="ch01.html#id5364039" id="id5364039">
<title>Defining the Parameters</title>
</section>
</section>
<section href="ch01.html#id5435531" id="id5435531">
<title>Creating an Output Port</title>
<figure href="ch01.html#id5435555" id="id5435555">
<title>Figure 1-6. The Output Ports Window</title>
</figure>
<figure href="ch01.html#id5435640" id="id5435640">
<title>Figure 1-7. Lattice Constraints for the Output Port</title>
</figure>
</section>
<section href="ch01.html#id5435697" id="id5435697">
<title>Defining the Function Arguments</title>
<table href="ch01.html#id5436001" id="id5436001">
<title>Table 1-1. Function Arguments for the C Function</title>
</table>
<table href="ch01.html#id5436221" id="id5436221">
<title>Table 1-2. Function Arguments for the Fortran Subroutine</title>
</table>
<figure href="ch01.html#id5436448" id="id5436448">
<title>Figure 1-8. The Function Args Window for C Users</title>
</figure>
<figure href="ch01.html#id5436528" id="id5436528">
<title>Figure 1-9. The Function Args Window for Fortran Users</title>
</figure>
</section>
<section href="ch01.html#id5436545" id="id5436545">
<title>Connecting Ports and Function Arguments</title>
<figure href="ch01.html#id5436654" id="id5436654">
<title>Figure 1-10. The Connections Window</title>
</figure>
<figure href="ch01.html#id5436744" id="id5436744">
<title>Figure 1-11. Input Port Popup Menu</title>
</figure>
<section href="ch01.html#id5436790" id="id5436790">
<title>Making the Right Connections</title>
</section>
<section href="ch01.html#id5437041" id="id5437041">
<title>Using the Pseudoports</title>
<figure href="ch01.html#id5437179" id="id5437179">
<title>Figure 1-12. Setting Storage Size for C Users</title>
</figure>
<figure href="ch01.html#id5437194" id="id5437194">
<title>Figure 1-13. Setting Storage Size for Fortran Users</title>
</figure>
</section>
</section>
</section>
<section href="ch01.html#id5437232" id="id5437232">
<title>Defining the User Interface</title>
<figure href="ch01.html#id5437287" id="id5437287">
<title>Figure 1-14. Control Panel Editor and Control Panel</title>
</figure>
<section href="ch01.html#id5437404" id="id5437404">
<title>Creating a Menu Item</title>
<figure href="ch01.html#id5437521" id="id5437521">
<title>Figure 1-15. Menu Bar Editor</title>
</figure>
<figure href="ch01.html#id5437623" id="id5437623">
<title>Figure 1-16. Menu Editor</title>
</figure>
</section>
<section href="ch01.html#id5437643" id="id5437643">
<title>Testing the Menu Bar</title>
</section>
</section>
<section href="ch01.html#id5437689" id="id5437689">
<title>Building the Module</title>
<section href="ch01.html#id5437699" id="id5437699">
<title>Selecting Build Options</title>
<figure href="ch01.html#id5437720" id="id5437720">
<title>Figure 1-17. Build Options Menu</title>
</figure>
</section>
<section href="ch01.html#id5437834" id="id5437834">
<title>Running the Build Command</title>
<figure href="ch01.html#id5437915" id="id5437915">
<title>Figure 1-18. Build Menu Options</title>
</figure>
</section>
</section>
</chapter>
<chapter href="ch02.html" id="id5437982">
<title>Chapter 2. Understanding the Module Builder</title>
<section href="ch02.html#id5438082" id="id5438082">
<title>Creating a User Function</title>
<section href="ch02.html#id5438191" id="id5438191">
<title>Using the Explorer API </title>
<section href="ch02.html#id5438245" id="id5438245">
<title>Geometry Modules in Fortran</title>
</section>
<section href="ch02.html#id5438266" id="id5438266">
<title>The Scripting API</title>
</section>
</section>
</section>
<section href="ch02.html#id5438309" id="id5438309">
<title>Running the Module Builder</title>
<section href="ch02.html#id5438341" id="id5438341">
<title>Opening Modules</title>
<figure href="ch02.html#id5438446" id="id5438446">
<title>Figure 2-1. Module Builder Main Window</title>
</figure>
</section>
<section href="ch02.html#id5438507" id="id5438507">
<title>Moving Around the Windows</title>
</section>
</section>
<section href="ch02.html#id5438685" id="id5438685">
<title>The Main Window</title>
<section href="ch02.html#id5438695" id="id5438695">
<title>The Module Name </title>
<section href="ch02.html#id5438783" id="id5438783">
<title>Naming Modules</title>
</section>
<section href="ch02.html#id5438855" id="id5438855">
<title>Modifying Existing Modules</title>
</section>
<section href="ch02.html#id5438883" id="id5438883">
<title>Saving Modules</title>
</section>
</section>
<section href="ch02.html#id5438930" id="id5438930">
<title>The User Function File</title>
<section href="ch02.html#id5439024" id="id5439024">
<title>Using Several Function Files</title>
</section>
<section href="ch02.html#id5439089" id="id5439089">
<title>Using Makefiles</title>
</section>
<section href="ch02.html#id5439144" id="id5439144">
<title>Writing Fortran User Functions</title>
</section>
</section>
<section href="ch02.html#id5439282" id="id5439282">
<title>The Include Files</title>
</section>
<section href="ch02.html#id5439401" id="id5439401">
<title>Associated Libraries</title>
</section>
<section href="ch02.html#id5439736" id="id5439736">
<title>User Makefiles</title>
</section>
</section>
<section href="ch02.html#id5439924" id="id5439924">
<title>Creating Ports</title>
<section href="ch02.html#id5439952" id="id5439952">
<title>Defining Input Ports</title>
<section href="ch02.html#id5440001" id="id5440001">
<title>Input Port Characteristics</title>
<figure href="ch02.html#id5440015" id="id5440015">
<title>Figure 2-2. Input Ports Window</title>
</figure>
</section>
<section href="ch02.html#id5440332" id="id5440332">
<title> Firing Sequences</title>
</section>
</section>
<section href="ch02.html#id5440355" id="id5440355">
<title>Setting Lattice Constraints</title>
<figure href="ch02.html#id5440406" id="id5440406">
<title>Figure 2-3. Lattice Constraints Window</title>
</figure>
<table href="ch02.html#id5440501" id="id5440501">
<title>Table 2-1.   Colormap Lattice Constraints</title>
</table>
<section href="ch02.html#id5440709" id="id5440709">
<title>Defining Lattice Constraint Fields</title>
</section>
<section href="ch02.html#id5440995" id="id5440995">
<title>Automatic Type Coercion of Arrays</title>
<figure href="ch02.html#id5441071" id="id5441071">
<title>Figure 2-4. Sequence of Type Coercions</title>
</figure>
</section>
<section href="ch02.html#id5441288" id="id5441288">
<title>Returning to the Port Window</title>
</section>
</section>
<section href="ch02.html#id5441312" id="id5441312">
<title>Setting Pyramid Constraints</title>
<section href="ch02.html#id5441416" id="id5441416">
<title>Defining Pyramid Constraint Fields</title>
<figure href="ch02.html#id5441473" id="id5441473">
<title>Figure 2-5. The Pyramid Constraints Window</title>
</figure>
</section>
<section href="ch02.html#id5441648" id="id5441648">
<title>Returning to the Port Window</title>
</section>
</section>
<section href="ch02.html#id5441672" id="id5441672">
<title>Defining Output Ports</title>
<figure href="ch02.html#id5441703" id="id5441703">
<title>Figure 2-6. Output Port Window</title>
</figure>
<section href="ch02.html#id5441720" id="id5441720">
<title>Defining Port Characteristics</title>
</section>
<section href="ch02.html#id5441805" id="id5441805">
<title>Checking the Port Status</title>
</section>
</section>
</section>
<section href="ch02.html#id5441912" id="id5441912">
<title>Defining Function Arguments</title>
<section href="ch02.html#id5442021" id="id5442021">
<title>Creating an Argument List</title>
<section href="ch02.html#id5442076" id="id5442076">
<title>Func Name</title>
</section>
<section href="ch02.html#id5442121" id="id5442121">
<title>Language</title>
<figure href="ch02.html#id5442178" id="id5442178">
<title>Figure 2-7. Function Arguments Window for a C Function</title>
</figure>
</section>
<section href="ch02.html#id5442196" id="id5442196">
<title>Arg Name</title>
<figure href="ch02.html#id5442269" id="id5442269">
<title>Figure 2-8. Function Arguments Window for a Fortran Subroutine</title>
</figure>
</section>
<section href="ch02.html#id5442308" id="id5442308">
<title>Type</title>
<table href="ch02.html#id5442357" id="id5442357">
<title>Table 2-2. Primitive Data Types in C and Fortran</title>
</table>
</section>
<section href="ch02.html#id5442630" id="id5442630">
<title>References</title>
<table href="ch02.html#id5442727" id="id5442727">
<title>Table 2-3. Function Argument References</title>
</table>
</section>
<section href="ch02.html#id5442916" id="id5442916">
<title>Return Val?</title>
</section>
</section>
<section href="ch02.html#id5442956" id="id5442956">
<title>Connecting Arguments to Ports</title>
<figure href="ch02.html#id5443108" id="id5443108">
<title>Figure 2-9. Connections Window</title>
</figure>
<section href="ch02.html#id5443155" id="id5443155">
<title>Understanding the Connections Menu</title>
<figure href="ch02.html#id5443340" id="id5443340">
<title>Figure 2-10. Connections Menu for the &#8220;Molecule&#8221; Port</title>
</figure>
</section>
<section href="ch02.html#id5443362" id="id5443362">
<title>Creating a Link</title>
</section>
<section href="ch02.html#id5443464" id="id5443464">
<title>Highlighted Connections</title>
<figure href="ch02.html#id5443495" id="id5443495">
<title>Figure 2-11. Highlights in the Connections Window</title>
</figure>
</section>
<section href="ch02.html#id5443572" id="id5443572">
<title>Passing Default Values</title>
</section>
<section href="ch02.html#id5443612" id="id5443612">
<title>Using Pseudo Input Ports</title>
<figure href="ch02.html#id5443823" id="id5443823">
<title>Figure 2-12. Setting a Constant Value for a Function Argument</title>
</figure>
</section>
<section href="ch02.html#id5443938" id="id5443938">
<title>Mapping Rules</title>
</section>
<section href="ch02.html#id5444181" id="id5444181">
<title> Checking the State of Input Ports</title>
</section>
<section href="ch02.html#id5444252" id="id5444252">
<title> Copying Arrays</title>
<figure href="ch02.html#id5444291" id="id5444291">
<title>Figure 2-13. Copy Buttons </title>
</figure>
</section>
<section href="ch02.html#id5444374" id="id5444374">
<title>Allocating Storage Space</title>
</section>
</section>
</section>
<section href="ch02.html#id5444510" id="id5444510">
<title>Creating File Prototypes</title>
<figure href="ch02.html#id5444535" id="id5444535">
<title>Figure 2-14. The Prototypes Menu</title>
</figure>
<section href="ch02.html#id5444575" id="id5444575">
<title>The User Function Prototype</title>
<figure href="ch02.html#id5444633" id="id5444633">
<title>Figure 2-15. Function Prototype Window</title>
</figure>
</section>
<section href="ch02.html#id5444720" id="id5444720">
<title>Hook Function Prototypes</title>
</section>
<section href="ch02.html#id5444801" id="id5444801">
<title>The Help File</title>
</section>
</section>
<section href="ch02.html#id5444944" id="id5444944">
<title>Using the Build Menu</title>
<figure href="ch02.html#id5445015" id="id5445015">
<title>Figure 2-16. The Build Menu</title>
</figure>
<section href="ch02.html#id5445035" id="id5445035">
<title>Selecting Build Options</title>
<figure href="ch02.html#id5445063" id="id5445063">
<title>Figure 2-17. The Build Options Menu</title>
</figure>
</section>
<section href="ch02.html#id5445474" id="id5445474">
<title>Building and Installing Modules</title>
</section>
<section href="ch02.html#id5445620" id="id5445620">
<title>Updating the Module Resources</title>
</section>
</section>
<section href="ch02.html#id5445719" id="id5445719">
<title>Configuring the Build Environment</title>
<section href="ch02.html#id5445756" id="id5445756">
<title>Defining EXPLORERUSERHOME</title>
</section>
<section href="ch02.html#id5446064" id="id5446064">
<title>Setting Environment Variables</title>
</section>
<section href="ch02.html#id5446345" id="id5446345">
<title>Creating a Makefile</title>
</section>
<section href="ch02.html#id5446631" id="id5446631">
<title>Debugging a Module</title>
</section>
<section href="ch02.html#id5446804" id="id5446804">
<title>Profiling a Module</title>
<section href="ch02.html#id5446887" id="id5446887">
<title>Coping with Shared Libraries</title>
</section>
<section href="ch02.html#id5447118" id="id5447118">
<title>Using pixie</title>
</section>
</section>
</section>
<section href="ch02.html#id5447358" id="id5447358">
<title>Examples of Simple Modules</title>
<section href="ch02.html#id5447378" id="id5447378">
<title>The Pass-through Module</title>
<section href="ch02.html#id5447389" id="id5447389">
<title>C Version:</title>
</section>
<section href="ch02.html#id5447453" id="id5447453">
<title>Fortran Version:</title>
</section>
</section>
<section href="ch02.html#id5447483" id="id5447483">
<title> The Channel-select Module</title>
<section href="ch02.html#id5447490" id="id5447490">
<title>In C:</title>
</section>
<section href="ch02.html#id5447565" id="id5447565">
<title>Fortran Version:</title>
</section>
</section>
</section>
</chapter>
<chapter href="ch03.html" id="id5447613">
<title>Chapter 3. Using the Lattice Data Type</title>
<section href="ch03.html#id5447636" id="id5447636">
<title>Understanding Lattices</title>
<figure href="ch03.html#id5447775" id="id5447775">
<title>Figure 3-1. Data Flow Between Input and Output Lattices</title>
</figure>
<section href="ch03.html#id5447796" id="id5447796">
<title>The Lattice Data Type</title>
<figure href="ch03.html#id5448049" id="id5448049">
<title>Figure 3-2. Schematic Structure of the Lattice Data Type</title>
</figure>
<section href="ch03.html#id5448089" id="id5448089">
<title>The Dimension Variables</title>
</section>
<section href="ch03.html#id5448264" id="id5448264">
<title>The cxData Structure</title>
</section>
<section href="ch03.html#id5447047" id="id5447047">
<title>The cxCoord Structure</title>
</section>
<section href="ch03.html#id5449678" id="id5449678">
<title>How Variables Interact</title>
<figure href="ch03.html#id5449724" id="id5449724">
<title>Figure 3-3. Lattice Variables</title>
</figure>
</section>
</section>
</section>
<section href="ch03.html#id5449748" id="id5449748">
<title>Manipulating Lattices</title>
<figure href="ch03.html#id5449840" id="id5449840">
<title>Figure 3-4. Storing a Lattice</title>
</figure>
<section href="ch03.html#id5449859" id="id5449859">
<title>Storing Data Values</title>
<figure href="ch03.html#id5449904" id="id5449904">
<title>Figure 3-5. Array Neighbors</title>
</figure>
<figure href="ch03.html#id5449968" id="id5449968">
<title>Figure 3-6. Storing Data Values</title>
</figure>
</section>
<section href="ch03.html#id5450161" id="id5450161">
<title>Defining Primitive Values</title>
<table href="ch03.html#id5450212" id="id5450212">
<title>Table 3-1.  Lattice Primitive Types</title>
</table>
</section>
<section href="ch03.html#id5450421" id="id5450421">
<title>Storing Coordinate Values</title>
<section href="ch03.html#id5450446" id="id5450446">
<title>Uniform Lattices</title>
<figure href="ch03.html#id5450495" id="id5450495">
<title>Figure 3-7. A 2-D Uniform Lattice Structure</title>
</figure>
<figure href="ch03.html#id5450681" id="id5450681">
<title>Figure 3-8. A 3-D Uniform Lattice Structure</title>
</figure>
</section>
<section href="ch03.html#id5450702" id="id5450702">
<title>Changing the Aspect Ratio</title>
</section>
<section href="ch03.html#id5450743" id="id5450743">
<title>Perimeter Lattices</title>
<figure href="ch03.html#id5450813" id="id5450813">
<title>Figure 3-9. Data Set for a 2-D Perimeter Lattice</title>
</figure>
<figure href="ch03.html#id5450873" id="id5450873">
<title>Figure 3-10. Storing Perimeter Coordinates</title>
</figure>
<figure href="ch03.html#id5450942" id="id5450942">
<title>Figure 3-11. Example of a 3-D Perimeter Lattice</title>
</figure>
</section>
<section href="ch03.html#id5450992" id="id5450992">
<title>Curvilinear Lattices</title>
<figure href="ch03.html#id5451087" id="id5451087">
<title>Figure 3-12. Storing Curvilinear Coordinates</title>
</figure>
<figure href="ch03.html#id5451222" id="id5451222">
<title>Figure 3-13. A 1-D Curvilinear Lattice</title>
</figure>
<figure href="ch03.html#id5451350" id="id5451350">
<title>Figure 3-14. 2-DCurvilinear Lattice</title>
</figure>
<figure href="ch03.html#id5451493" id="id5451493">
<title>Figure 3-15. 3-Durvilinear Lattices</title>
</figure>
</section>
</section>
</section>
<section href="ch03.html#id5451516" id="id5451516">
<title>Limiting Lattice Values</title>
<figure href="ch03.html#id5451646" id="id5451646">
<title>Figure 3-16. Defining Lattice Constraints</title>
</figure>
</section>
<section href="ch03.html#id5451667" id="id5451667">
<title>Lattice Examples</title>
<section href="ch03.html#id5451690" id="id5451690">
<title>A Colormap Example</title>
</section>
<section href="ch03.html#id5451860" id="id5451860">
<title>A 2-D Image Example</title>
</section>
<section href="ch03.html#id5452000" id="id5452000">
<title>Preparing Your Data for Lattices</title>
</section>
</section>
<section href="ch03.html#id5452105" id="id5452105">
<title>The Data Type Declaration</title>
</section>
<section href="ch03.html#id5452276" id="id5452276">
<title>The Lattice API Routines</title>
<table href="ch03.html#id5362443" id="id5362443">
<title>Table 3-2.  Lattice Subroutines</title>
</table>
</section>
<section href="ch03.html#id5453124" id="id5453124">
<title>Code Examples</title>
<section href="ch03.html#id5453182" id="id5453182">
<title>1-D Lattice</title>
<section href="ch03.html#id5453247" id="id5453247">
<title>C Version:</title>
</section>
<section href="ch03.html#id5453290" id="id5453290">
<title>Fortran Version:</title>
</section>
</section>
<section href="ch03.html#id5453378" id="id5453378">
<title>2-D Lattice </title>
<section href="ch03.html#id5453400" id="id5453400">
<title>C Version:</title>
</section>
<section href="ch03.html#id5453469" id="id5453469">
<title>Fortran Version:</title>
</section>
</section>
<section href="ch03.html#id5453614" id="id5453614">
<title>A 3-D Curvilinear Lattice</title>
<section href="ch03.html#id5453652" id="id5453652">
<title>C Version:</title>
</section>
<section href="ch03.html#id5453711" id="id5453711">
<title>Fortran Version:</title>
</section>
</section>
</section>
</chapter>
<chapter href="ch04.html" id="id5453803">
<title>Chapter 4. Using the Pyramid Data Type</title>
<section href="ch04.html#id5453840" id="id5453840">
<title>Understanding Pyramids</title>
<section href="ch04.html#id5453990" id="id5453990">
<title>The Structure of a Pyramid</title>
</section>
<section href="ch04.html#id5454344" id="id5454344">
<title>Pyramid Dictionaries</title>
</section>
<section href="ch04.html#id5454477" id="id5454477">
<title>A Pyramid Reader Module</title>
<section href="ch04.html#id5454682" id="id5454682">
<title>Reading Several Data Types</title>
</section>
</section>
<section href="ch04.html#id5454707" id="id5454707">
<title>Using the Dictionary Elements</title>
<figure href="ch04.html#id5454803" id="id5454803">
<title>Figure 4-1. Pyramid Dictionary Reference Elements</title>
</figure>
<table href="ch04.html#id5454871" id="id5454871">
<title>Table 4-1. Standard Dictionary Reference Elements</title>
</table>
</section>
</section>
<section href="ch04.html#id5455271" id="id5455271">
<title>Finite Element Pyramids</title>
<section href="ch04.html#id5455291" id="id5455291">
<title>Setting up the Lattice Structure</title>
<figure href="ch04.html#id5455371" id="id5455371">
<title>Figure 4-2. Memory Layout of a 2-D Lattice</title>
</figure>
</section>
<section href="ch04.html#id5455412" id="id5455412">
<title>Contents of Layers</title>
</section>
<section href="ch04.html#id5455446" id="id5455446">
<title>Designing a Finite Element Mesh</title>
</section>
<section href="ch04.html#id5455484" id="id5455484">
<title>Creating a Tetrahedral Grid</title>
<figure href="ch04.html#id5455516" id="id5455516">
<title>Figure 4-3. Layers in a Tetrahedral Grid</title>
</figure>
<figure href="ch04.html#id5455656" id="id5455656">
<title>Figure 4-4. Top and Bottom of Compressed Tetrahedral Grid</title>
</figure>
</section>
<section href="ch04.html#id5455703" id="id5455703">
<title>Using a Pyramid Dictionary</title>
<figure href="ch04.html#id5455875" id="id5455875">
<title>Figure 4-5. Layers in a Compressed Grid</title>
</figure>
<section href="ch04.html#id5455937" id="id5455937">
<title>Advantages</title>
</section>
<section href="ch04.html#id5455953" id="id5455953">
<title>Disadvantages</title>
</section>
</section>
</section>
<section href="ch04.html#id5456012" id="id5456012">
<title>Structure of a Dictionary</title>
</section>
<section href="ch04.html#id5456484" id="id5456484">
<title>Pyramid Layer Connections</title>
<section href="ch04.html#id5456516" id="id5456516">
<title>The Pyramid Layers</title>
</section>
<section href="ch04.html#id5456547" id="id5456547">
<title>The Pyramid Connections</title>
</section>
<section href="ch04.html#id5456811" id="id5456811">
<title>Connection List Components</title>
<figure href="ch04.html#id5456863" id="id5456863">
<title>Figure 4-6. Connections in a Tetrahedron</title>
</figure>
</section>
<section href="ch04.html#id5456894" id="id5456894">
<title>Creating a Connection List</title>
</section>
<section href="ch04.html#id5457132" id="id5457132">
<title>Using the Compressed Pyramid API</title>
<section href="ch04.html#id5457150" id="id5457150">
<title>Designing a Compressed Pyramid Module </title>
</section>
<section href="ch04.html#id5457229" id="id5457229">
<title>Dealing with Compressed Elements</title>
</section>
<section href="ch04.html#id5457311" id="id5457311">
<title>Handling Compression at Non-operational Levels</title>
</section>
<section href="ch04.html#id5457351" id="id5457351">
<title>A Practical Example</title>
<figure href="ch04.html#id5457429" id="id5457429">
<title>Figure 4-7. Preprocessing a Pyramid Dictionary</title>
</figure>
</section>
</section>
</section>
<section href="ch04.html#id5457616" id="id5457616">
<title>Chemistry Pyramids</title>
<table href="ch04.html#id5457832" id="id5457832">
<title>Table 4-2. User-defined Values in the Chemistry Pyramid</title>
</table>
</section>
<section href="ch04.html#id5458142" id="id5458142">
<title>Data Type Declaration</title>
</section>
<section href="ch04.html#id5458263" id="id5458263">
<title>The Pyramid API Routines</title>
<table href="ch04.html#id5458420" id="id5458420">
<title>Table 4-3. Pyramid Subroutines</title>
</table>
<table href="ch04.html#id5458896" id="id5458896">
<title>Table 4-4. Pyramid Dictionary Subroutines</title>
</table>
</section>
<section href="ch04.html#id5459318" id="id5459318">
<title>Code Examples</title>
<section href="ch04.html#id5459327" id="id5459327">
<title>A Simple Example</title>
<section href="ch04.html#id5459346" id="id5459346">
<title>C Version:</title>
</section>
<section href="ch04.html#id5459533" id="id5459533">
<title>Fortran Version:</title>
</section>
</section>
<section href="ch04.html#id5459661" id="id5459661">
<title>More Complex Examples</title>
</section>
</section>
</chapter>
<chapter href="ch05.html" id="id5459693">
<title>Chapter 5. Using the Geometry Data Type</title>
<section href="ch05.html#id5459723" id="id5459723">
<title>Understanding Geometry</title>
</section>
<section href="ch05.html#id5459806" id="id5459806">
<title>The Geometry Data Type</title>
<figure href="ch05.html#id5459978" id="id5459978">
<title>Figure 5-1. Schematic Structure of the Geometry Data Type</title>
</figure>
</section>
<section href="ch05.html#id5361078" id="id5361078">
<title>Understanding Scene Graphs</title>
<figure href="ch05.html#id5460247" id="id5460247">
<title>Figure 5-2. Inventor Scene Graph</title>
</figure>
<section href="ch05.html#id5460338" id="id5460338">
<title>Decoding and Recoding Scene Graphs</title>
<figure href="ch05.html#id5460512" id="id5460512">
<title>Figure 5-3. Node Relationships</title>
</figure>
</section>
</section>
<section href="ch05.html#id5460534" id="id5460534">
<title>Creating Geometry Modules</title>
<section href="ch05.html#id5460579" id="id5460579">
<title>Writing a Geometry Module</title>
</section>
<section href="ch05.html#id5460618" id="id5460618">
<title>An Example Geometry Module</title>
<figure href="ch05.html#id5460098" id="id5460098">
<title>Figure 5-4. Modifying a Color Node (Stage 1)</title>
</figure>
<figure href="ch05.html#id5460163" id="id5460163">
<title>Figure 5-5. Modifying a Color Node (Stage 2)</title>
</figure>
<figure href="ch05.html#id5462169" id="id5462169">
<title>Figure 5-6. Modifying a Color Node (Stage 3)</title>
</figure>
</section>
</section>
<section href="ch05.html#id5462191" id="id5462191">
<title>Data Type Declaration</title>
</section>
<section href="ch05.html#id5462272" id="id5462272">
<title>The Geometry API Routines</title>
<table href="ch05.html#id5462333" id="id5462333">
<title>Table 5-1.  Geometry Subroutines</title>
</table>
</section>
<section href="ch05.html#id5463008" id="id5463008">
<title>Code Examples</title>
<section href="ch05.html#id5463030" id="id5463030">
<title>Creating Line Segments</title>
<section href="ch05.html#id5463075" id="id5463075">
<title>C++ Version:</title>
</section>
<section href="ch05.html#id5463104" id="id5463104">
<title>Fortran Version:</title>
</section>
</section>
<section href="ch05.html#id5463181" id="id5463181">
<title>Creating Modules with Inventor Code</title>
<section href="ch05.html#id5463193" id="id5463193">
<title>Texturing a Sphere</title>
</section>
<section href="ch05.html#id5463246" id="id5463246">
<title>A Simple Renderer</title>
</section>
<section href="ch05.html#id5463490" id="id5463490">
<title>Creating More Geometry</title>
</section>
<section href="ch05.html#id5463514" id="id5463514">
<title>C Version:</title>
</section>
<section href="ch05.html#id5463580" id="id5463580">
<title>Fortran Version:</title>
<figure href="ch05.html#id5463668" id="id5463668">
<title>Figure 5-7. Output from Geometry Example</title>
</figure>
</section>
</section>
</section>
</chapter>
<chapter href="ch06.html" id="id5463693">
<title>Chapter 6. Using the Pick Data Type</title>
<section href="ch06.html#id5463792" id="id5463792">
<title>Understanding the Picking Function</title>
</section>
<section href="ch06.html#id5463955" id="id5463955">
<title>Using the Pick Data Type</title>
<section href="ch06.html#id5464124" id="id5464124">
<title>Modules that Read Pick Data</title>
</section>
<section href="ch06.html#id5464227" id="id5464227">
<title>Modules that Write Pick Data</title>
</section>
<section href="ch06.html#id5464285" id="id5464285">
<title>The cxPick Structure</title>
<section href="ch06.html#id5464315" id="id5464315">
<title>Terminology</title>
<figure href="ch06.html#id5464755" id="id5464755">
<title>Figure 6-1. Schematic Structure of the Pick Data Type </title>
</figure>
</section>
</section>
<section href="ch06.html#id5464779" id="id5464779">
<title>Getting Data on the Hit Object</title>
<figure href="ch06.html#id5465292" id="id5465292">
<title>Figure 6-2. Schematic Structure of the PickHit Data Type</title>
</figure>
<section href="ch06.html#id5465313" id="id5465313">
<title>Labeling Items in Scene Graphs</title>
<figure href="ch06.html#id5465396" id="id5465396">
<title>Figure 6-3. The Pick Map </title>
</figure>
</section>
<section href="ch06.html#id5465455" id="id5465455">
<title>Gathering Shape Information.</title>
</section>
</section>
</section>
<section href="ch06.html#id5465613" id="id5465613">
<title>The Data Type Declaration</title>
</section>
<section href="ch06.html#id5465741" id="id5465741">
<title>The Pick API Routines</title>
<table href="ch06.html#id5465821" id="id5465821">
<title>Table 6-1. Pick Subroutines</title>
</table>
</section>
<section href="ch06.html#id5466056" id="id5466056">
<title>Code Examples</title>
<section href="ch06.html#id5466114" id="id5466114">
<title>Reading Pick Data </title>
<section href="ch06.html#id5466137" id="id5466137">
<title>C Version:</title>
</section>
<section href="ch06.html#id5466199" id="id5466199">
<title>Fortran Version</title>
</section>
</section>
<section href="ch06.html#id5466232" id="id5466232">
<title>Writing Pick Data </title>
</section>
</section>
</chapter>
<chapter href="ch07.html" id="id5466335">
<title>Chapter 7. Using the Parameter Data Type</title>
<section href="ch07.html#id5466375" id="id5466375">
<title>Understanding Parameters</title>
<figure href="ch07.html#id5466529" id="id5466529">
<title>Figure 7-1. Schematic Structure of the Parameter Type</title>
</figure>
<section href="ch07.html#id5466570" id="id5466570">
<title>Control Panel Widgets</title>
</section>
</section>
<section href="ch07.html#id5466606" id="id5466606">
<title>The Data Type Declaration</title>
<section href="ch07.html#id5466700" id="id5466700">
<title>Fortran Type Enumeration</title>
</section>
</section>
<section href="ch07.html#id5466729" id="id5466729">
<title>Using the Parameter API </title>
<table href="ch07.html#id5466913" id="id5466913">
<title>Table 7-1. Parameter Subroutines</title>
</table>
</section>
<section href="ch07.html#id5467270" id="id5467270">
<title>Code Example</title>
</section>
</chapter>
<chapter href="ch08.html" id="id5467304">
<title>Chapter 8. Creating User-defined Data Types</title>
<section href="ch08.html#id5467328" id="id5467328">
<title>Overview</title>
</section>
<section href="ch08.html#id5467468" id="id5467468">
<title>Creating a Data Type</title>
<section href="ch08.html#id5467525" id="id5467525">
<title>Type Declaration File</title>
</section>
<section href="ch08.html#id5467717" id="id5467717">
<title>Naming Files and Data Types</title>
</section>
</section>
<section href="ch08.html#id5467765" id="id5467765">
<title>Using the ETL </title>
<section href="ch08.html#id5467818" id="id5467818">
<title>Conventions</title>
</section>
<section href="ch08.html#id5467952" id="id5467952">
<title>Syntax</title>
</section>
<section href="ch08.html#id5468459" id="id5468459">
<title>Rules for Type Definitions</title>
</section>
<section href="ch08.html#id5468664" id="id5468664">
<title>Naming Conventions</title>
</section>
<section href="ch08.html#id5468812" id="id5468812">
<title>Scalar Types</title>
<table href="ch08.html#id5468880" id="id5468880">
<title>Table 8-1. Scalar Types in Explorer</title>
</table>
<section href="ch08.html#id5469225" id="id5469225">
<title>Signing Integer Types</title>
</section>
<section href="ch08.html#id5469256" id="id5469256">
<title>Signing Other Scalar Types</title>
</section>
</section>
<section href="ch08.html#id5469449" id="id5469449">
<title>Enumerated Constant Types</title>
</section>
<section href="ch08.html#id5469555" id="id5469555">
<title>Composition Rules </title>
<section href="ch08.html#id5469611" id="id5469611">
<title>Struct Structures </title>
</section>
<section href="ch08.html#id5469731" id="id5469731">
<title>Switch Structures</title>
</section>
</section>
<section href="ch08.html#id5469875" id="id5469875">
<title>Defining a New Type</title>
</section>
<section href="ch08.html#id5470118" id="id5470118">
<title>Including Other Type and Header Files </title>
</section>
<section href="ch08.html#id5470271" id="id5470271">
<title>Structures</title>
<section href="ch08.html#id5470330" id="id5470330">
<title>In-line Structures</title>
</section>
<section href="ch08.html#id5470440" id="id5470440">
<title>Reference-counted Structures</title>
</section>
<section href="ch08.html#id5470606" id="id5470606">
<title>Differences Between Structures</title>
</section>
<section href="ch08.html#id5470741" id="id5470741">
<title>Examples of Reference-counted Structures</title>
</section>
</section>
<section href="ch08.html#id5470890" id="id5470890">
<title>Structure Member Declaration</title>
<table href="ch08.html#id5471142" id="id5471142">
<title>Table 8-2. A Simple-typed Member</title>
</table>
</section>
<section href="ch08.html#id5471289" id="id5471289">
<title>Array Dimensioning</title>
</section>
<section href="ch08.html#id5471711" id="id5471711">
<title>Assigning Labels</title>
<table href="ch08.html#id5471793" id="id5471793">
<title>Table 8-3. Labels on Lattice Scalars</title>
</table>
<section href="ch08.html#id5471998" id="id5471998">
<title>Constructing Labels </title>
</section>
</section>
<section href="ch08.html#id5472500" id="id5472500">
<title>Inserting Comments </title>
</section>
</section>
<section href="ch08.html#id5472563" id="id5472563">
<title>Differences between ETL and C</title>
<section href="ch08.html#id5472573" id="id5472573">
<title>No Separating Comma</title>
</section>
<section href="ch08.html#id5472641" id="id5472641">
<title>No Pointer Variables</title>
</section>
<section href="ch08.html#id5472683" id="id5472683">
<title>No Anonymous Structure Arrays</title>
</section>
</section>
<section href="ch08.html#id5472906" id="id5472906">
<title>Scoping</title>
<section href="ch08.html#id5472928" id="id5472928">
<title>Ordering Array Members</title>
<section href="ch08.html#id5473097" id="id5473097">
<title>Using Switch Discriminators</title>
</section>
</section>
<section href="ch08.html#id5473152" id="id5473152">
<title>The Resulting C Structure</title>
</section>
</section>
<section href="ch08.html#id5473425" id="id5473425">
<title>Summary of ETL Syntax</title>
</section>
<section href="ch08.html#id5474620" id="id5474620">
<title>Building a Type Declaration</title>
<section href="ch08.html#id5474632" id="id5474632">
<title>Building the Type and Related Files</title>
</section>
<section href="ch08.html#id5474962" id="id5474962">
<title>What the Files Do</title>
<figure href="ch08.html#id5475310" id="id5475310">
<title>Figure 8-1. Explorer Types Information Flow</title>
</figure>
</section>
</section>
<section href="ch08.html#id5475332" id="id5475332">
<title>Visibility of Data Types in Explorer</title>
<section href="ch08.html#id5475346" id="id5475346">
<title>In the GUI</title>
</section>
<section href="ch08.html#id5475385" id="id5475385">
<title>Between Modules</title>
</section>
</section>
<section href="ch08.html#id5475419" id="id5475419">
<title>Application Programming Interface </title>
<table href="ch08.html#id5475453" id="id5475453">
<title>Table 8-4. Member of a Data Type</title>
</table>
<section href="ch08.html#id5475575" id="id5475575">
<title>API Member Types and Functions</title>
<section href="ch08.html#id5475671" id="id5475671">
<title>Functions for All Members</title>
</section>
<section href="ch08.html#id5475695" id="id5475695">
<title>Functions for Reference-counted Structure</title>
</section>
<section href="ch08.html#id5475800" id="id5475800">
<title>Functions for Arrays</title>
</section>
<section href="ch08.html#id5475899" id="id5475899">
<title>Dimensioning arrays </title>
</section>
<section href="ch08.html#id5475928" id="id5475928">
<title>Functions for Members in a Switch</title>
</section>
<section href="ch08.html#id5476000" id="id5476000">
<title>Memory Handling</title>
</section>
</section>
<section href="ch08.html#id5476030" id="id5476030">
<title>Fortran Wrappers</title>
<section href="ch08.html#id5476091" id="id5476091">
<title>Suppressing char** Routines</title>
</section>
<section href="ch08.html#id5476277" id="id5476277">
<title>Fortran Bugs</title>
</section>
</section>
<section href="ch08.html#id5476339" id="id5476339">
<title>Location of API ManPages</title>
</section>
</section>
<section href="ch08.html#id5476433" id="id5476433">
<title>Crossing Machine Boundaries</title>
</section>
<section href="ch08.html#id5476485" id="id5476485">
<title>Example of a User-defined Type</title>
<section href="ch08.html#id5476562" id="id5476562">
<title>Test Module 1</title>
<section href="ch08.html#id5476608" id="id5476608">
<title>C Version:</title>
</section>
<section href="ch08.html#id5476681" id="id5476681">
<title>Fortran Version:</title>
</section>
</section>
<section href="ch08.html#id5476774" id="id5476774">
<title>Test Module 2</title>
<section href="ch08.html#id5476793" id="id5476793">
<title>C Version:</title>
</section>
<section href="ch08.html#id5476821" id="id5476821">
<title>Fortran Version:</title>
</section>
</section>
<section href="ch08.html#id5476855" id="id5476855">
<title>Auto-generated Modules</title>
</section>
</section>
</chapter>
<chapter href="ch09.html" id="id5476892">
<title>Chapter 9. Advanced Module Writing</title>
<section href="ch09.html#id5476921" id="id5476921">
<title>Controlling Module Functions</title>
<figure href="ch09.html#id5477011" id="id5477011">
<title>Figure 9-1. Spectrum of Module Complexity</title>
</figure>
<section href="ch09.html#id5477030" id="id5477030">
<title>The Module Wrappers</title>
<figure href="ch09.html#id5477070" id="id5477070">
<title>Figure 9-2. The Module Structure</title>
</figure>
<section href="ch09.html#id5477090" id="id5477090">
<title>Module Control Wrapper</title>
</section>
<section href="ch09.html#id5477167" id="id5477167">
<title>Module Data Wrapper</title>
</section>
<section href="ch09.html#id5477240" id="id5477240">
<title>The Generic Wrapper</title>
</section>
</section>
<section href="ch09.html#id5477328" id="id5477328">
<title>Working with Module Wrappers</title>
<section href="ch09.html#id5477423" id="id5477423">
<title>Modules Without MDW</title>
</section>
<section href="ch09.html#id5477632" id="id5477632">
<title>Using the X-MCW Option</title>
<table href="ch09.html#id5477822" id="id5477822">
<title>Table 9-1. X Window API Subroutines</title>
</table>
</section>
</section>
<section href="ch09.html#id5478028" id="id5478028">
<title>Examples Using X Widgets</title>
<section href="ch09.html#id5478109" id="id5478109">
<title>Graphics Library (GL) Example</title>
</section>
<section href="ch09.html#id5478134" id="id5478134">
<title>C Version:</title>
</section>
<section href="ch09.html#id5478226" id="id5478226">
<title>Fortran Version:</title>
</section>
<section href="ch09.html#id5478316" id="id5478316">
<title>XtGLArea Examples</title>
</section>
<section href="ch09.html#id5478344" id="id5478344">
<title>C Version:</title>
</section>
<section href="ch09.html#id5478407" id="id5478407">
<title>Fortran Version:</title>
<figure href="ch09.html#id5478473" id="id5478473">
<title>Figure 9-3. Output from the XGLArea Routine</title>
</figure>
</section>
</section>
</section>
<section href="ch09.html#id5478520" id="id5478520">
<title>Sharing Module Executables </title>
<section href="ch09.html#id5478594" id="id5478594">
<title>Types of Shared Executable</title>
</section>
<section href="ch09.html#id5478917" id="id5478917">
<title>Using an Alternate Executable</title>
</section>
</section>
<section href="ch09.html#id5479006" id="id5479006">
<title>Building Loop Controller Modules</title>
<section href="ch09.html#id5479120" id="id5479120">
<title>Using the Loop Controller API</title>
</section>
<section href="ch09.html#id5479233" id="id5479233">
<title>Using Generic Controller Modules</title>
<table href="ch09.html#id5479364" id="id5479364">
<title>Table 9-2. While Module Ports</title>
</table>
<section href="ch09.html#id5479519" id="id5479519">
<title>The For Module</title>
</section>
</section>
<section href="ch09.html#id5479562" id="id5479562">
<title>The cxGeneric Data Type</title>
</section>
</section>
<section href="ch09.html#id5479671" id="id5479671">
<title>Installing Interpreter Modules</title>
<table href="ch09.html#id5479746" id="id5479746">
<title>Table 9-3. Interperter Module Files</title>
</table>
</section>
<section href="ch09.html#id5479944" id="id5479944">
<title>Hook Functions</title>
<section href="ch09.html#id5480093" id="id5480093">
<title>Hook Function Calling Sequence</title>
</section>
<section href="ch09.html#id5480310" id="id5480310">
<title>Writing Hook Functions</title>
<figure href="ch09.html#id5480469" id="id5480469">
<title>Figure 9-4. The Hook Function Window</title>
</figure>
</section>
<section href="ch09.html#id5480548" id="id5480548">
<title>Examples</title>
</section>
</section>
<section href="ch09.html#id5480608" id="id5480608">
<title>Understanding Reference Counting</title>
<section href="ch09.html#id5480651" id="id5480651">
<title>Managing Data in Shared Memory</title>
</section>
<section href="ch09.html#id5480739" id="id5480739">
<title>How Reference Counting Works</title>
</section>
<section href="ch09.html#id5480798" id="id5480798">
<title>How Explorer Implements Reference Counting</title>
</section>
<section href="ch09.html#id5480886" id="id5480886">
<title>Reference-Counting Data Types</title>
<section href="ch09.html#id5480941" id="id5480941">
<title>Reference Counts for Contained Data Types</title>
</section>
<section href="ch09.html#id5481034" id="id5481034">
<title>Manipulating Reference Counts</title>
</section>
</section>
<section href="ch09.html#id5481071" id="id5481071">
<title>Shared Memory Arena</title>
<section href="ch09.html#id5481095" id="id5481095">
<title>Allocating Memory Efficiently</title>
</section>
<section href="ch09.html#id5481171" id="id5481171">
<title>Recovering from Memory Errors</title>
</section>
</section>
<section href="ch09.html#id5481255" id="id5481255">
<title>Examples of Memory Recovery</title>
<section href="ch09.html#id5481278" id="id5481278">
<title>Example 1</title>
</section>
<section href="ch09.html#id5481368" id="id5481368">
<title>Example 2</title>
</section>
<section href="ch09.html#id5481437" id="id5481437">
<title>Example 3</title>
</section>
<section href="ch09.html#id5481519" id="id5481519">
<title>Example 4</title>
</section>
<section href="ch09.html#id5481645" id="id5481645">
<title>Example 5</title>
</section>
</section>
</section>
<section href="ch09.html#id5481774" id="id5481774">
<title>Extending the Power of Modules </title>
<section href="ch09.html#id5481820" id="id5481820">
<title>Communicating with UNIX Processes</title>
<section href="ch09.html#id5481884" id="id5481884">
<title>An Example Module</title>
</section>
<section href="ch09.html#id5481920" id="id5481920">
<title>C Version:</title>
</section>
</section>
<section href="ch09.html#id5482015" id="id5482015">
<title>Timer Events</title>
</section>
<section href="ch09.html#id5482154" id="id5482154">
<title>Expanding Filenames</title>
</section>
</section>
<section href="ch09.html#id5482262" id="id5482262">
<title>Making Subdirectories for Module Development</title>
<section href="ch09.html#id5482385" id="id5482385">
<title>Creating the Directory</title>
</section>
<section href="ch09.html#id5482545" id="id5482545">
<title>Building Sample Explorer Modules </title>
</section>
<section href="ch09.html#id5482748" id="id5482748">
<title>Setting Up a Personal Module Tree</title>
</section>
</section>
<section href="ch09.html#id5483117" id="id5483117">
<title>Support for Multiprocessing Modules</title>
<section href="ch09.html#id5483141" id="id5483141">
<title>Building a Multiprocessing Module</title>
<section href="ch09.html#id5483372" id="id5483372">
<title>Controlling a Multiprocessing Module</title>
</section>
</section>
</section>
</chapter>
<chapter href="ch10.html" id="id5483500">
<title>Chapter 10. Module Prototyping with Shape</title>
<section href="ch10.html#id5483520" id="id5483520">
<title>Overview </title>
</section>
<section href="ch10.html#id5483683" id="id5483683">
<title>The LatFunction Module</title>
<section href="ch10.html#id5483754" id="id5483754">
<title>The Basic LatFunction Module</title>
<figure href="ch10.html#id5483936" id="id5483936">
<title>Figure 10-1. The LatFunction Module Control Panel</title>
</figure>
</section>
<section href="ch10.html#id5484069" id="id5484069">
<title>The LatFunction-based Module</title>
<section href="ch10.html#id5484097" id="id5484097">
<title>Input Ports</title>
</section>
<section href="ch10.html#id5484290" id="id5484290">
<title>Output Ports</title>
<figure href="ch10.html#id5484449" id="id5484449">
<title>Figure 10-2. How Shape Assigns Variable Names</title>
</figure>
</section>
</section>
<section href="ch10.html#id5484636" id="id5484636">
<title>Interfacing to Explorer Data Types</title>
</section>
<section href="ch10.html#id5484768" id="id5484768">
<title>Building a LatFunction-based Module</title>
</section>
</section>
<section href="ch10.html#id5484914" id="id5484914">
<title>Prototyping on the Fly</title>
</section>
<section href="ch10.html#id5485143" id="id5485143">
<title>Shape Language Particulars</title>
<section href="ch10.html#id5485160" id="id5485160">
<title>Resemblances to C</title>
</section>
<section href="ch10.html#id5485392" id="id5485392">
<title>Differences from C</title>
<section href="ch10.html#id5485410" id="id5485410">
<title>Lattice Manipulations</title>
</section>
<section href="ch10.html#id5486023" id="id5486023">
<title>The define Operator (:=)</title>
</section>
<section href="ch10.html#id5486371" id="id5486371">
<title>Promotion of Arrays </title>
</section>
<section href="ch10.html#id5486444" id="id5486444">
<title> Reduction of Arrays</title>
</section>
</section>
<section href="ch10.html#id5486607" id="id5486607">
<title>Other Operators</title>
</section>
<section href="ch10.html#id5486736" id="id5486736">
<title>Data Types</title>
<table href="ch10.html#id5486802" id="id5486802">
<title>Table 10-1. Data Types in C and Shape</title>
</table>
</section>
<section href="ch10.html#id5486894" id="id5486894">
<title>Function Declaration Syntax</title>
</section>
<section href="ch10.html#id5487005" id="id5487005">
<title>Loop Syntax</title>
<section href="ch10.html#id5487039" id="id5487039">
<title>For Loop</title>
</section>
<section href="ch10.html#id5487082" id="id5487082">
<title>While Loop</title>
</section>
<section href="ch10.html#id5487109" id="id5487109">
<title>Continue and Break</title>
</section>
</section>
<section href="ch10.html#id5487125" id="id5487125">
<title>Issues of Scope</title>
</section>
<section href="ch10.html#id5487179" id="id5487179">
<title>Additional Features</title>
<section href="ch10.html#id5487278" id="id5487278">
<title>Copy</title>
</section>
<section href="ch10.html#id5487371" id="id5487371">
<title>Scatter and Gather</title>
</section>
<section href="ch10.html#id5487577" id="id5487577">
<title>Shape</title>
</section>
<section href="ch10.html#id5487670" id="id5487670">
<title>Allocate</title>
</section>
<section href="ch10.html#id5487915" id="id5487915">
<title>Slice</title>
</section>
<section href="ch10.html#id5488178" id="id5488178">
<title>Subshape</title>
</section>
<section href="ch10.html#id5488312" id="id5488312">
<title>Stack</title>
</section>
<section href="ch10.html#id5488411" id="id5488411">
<title>SendIndices</title>
</section>
<section href="ch10.html#id5488513" id="id5488513">
<title>Min and Max</title>
</section>
<section href="ch10.html#id5488557" id="id5488557">
<title>DotProduct (+.*)</title>
</section>
<section href="ch10.html#id5488717" id="id5488717">
<title>BitProduct (|.&amp;)</title>
</section>
<section href="ch10.html#id5488756" id="id5488756">
<title>Conditional Evaluation (?:)</title>
</section>
</section>
<section href="ch10.html#id5488890" id="id5488890">
<title>Changing Promotion and Reduction Order </title>
<section href="ch10.html#id5488915" id="id5488915">
<title>Inside</title>
</section>
<section href="ch10.html#id5489109" id="id5489109">
<title>Outside</title>
</section>
<section href="ch10.html#id5489181" id="id5489181">
<title>InsideOut</title>
</section>
</section>
</section>
<section href="ch10.html#id5489249" id="id5489249">
<title>Data Output from Shape</title>
<section href="ch10.html#id5489484" id="id5489484">
<title>Scalar_lattice_in and Scalar_lattice_out</title>
</section>
<section href="ch10.html#id5489573" id="id5489573">
<title>List Operators</title>
<section href="ch10.html#id5489853" id="id5489853">
<title>List</title>
</section>
<section href="ch10.html#id5489935" id="id5489935">
<title>List_first and List_rest</title>
</section>
<section href="ch10.html#id5489995" id="id5489995">
<title>Handling Perimeter Lattice Coordinates </title>
</section>
<section href="ch10.html#id5490105" id="id5490105">
<title>Map and Apply</title>
</section>
<section href="ch10.html#id5490346" id="id5490346">
<title>Pair_p and Null_p</title>
</section>
</section>
</section>
<section href="ch10.html#id5490413" id="id5490413">
<title>The Module Prelude and Postlude</title>
<section href="ch10.html#id5490481" id="id5490481">
<title>Prelude Set-up Functions</title>
</section>
<section href="ch10.html#id5490692" id="id5490692">
<title>Prelude Execution Functions</title>
</section>
<section href="ch10.html#id5490772" id="id5490772">
<title>Postlude Functions</title>
</section>
</section>
<section href="ch10.html#id5490872" id="id5490872">
<title>Shape Function Tables</title>
<table href="ch10.html#id5490893" id="id5490893">
<title>Table 10-2. C-like Functions in Shape</title>
</table>
<table href="ch10.html#id5494231" id="id5494231">
<title>Table 10-3. Functions Specific to Shape</title>
</table>
</section>
<section href="ch10.html#id5495843" id="id5495843">
<title>Sample Programs for LatFunction</title>
<section href="ch10.html#id5495854" id="id5495854">
<title>To Create a Test Volume</title>
<figure href="ch10.html#id5495922" id="id5495922">
<title>Figure 10-3. LatFunction in the testVol Map</title>
</figure>
</section>
<section href="ch10.html#id5495969" id="id5495969">
<title>To Carry Out a Color Transform </title>
<figure href="ch10.html#id5496031" id="id5496031">
<title>Figure 10-4. Output from the color-xform Map</title>
</figure>
</section>
<section href="ch10.html#id5496052" id="id5496052">
<title>To Generate a Heat Flux</title>
<figure href="ch10.html#id5496136" id="id5496136">
<title>Figure 10-5. Output from the heat-flux Map</title>
</figure>
</section>
</section>
</chapter>
<appendix href="apa.html" id="id5496212">
<title>Appendix A. Using Makefiles</title>
<section href="apa.html#id5496285" id="id5496285">
<title>Creating a Module </title>
<section href="apa.html#id5496405" id="id5496405">
<title>Installing a Module</title>
</section>
<section href="apa.html#id5496465" id="id5496465">
<title>Build and Installation Options</title>
</section>
</section>
<section href="apa.html#id5496721" id="id5496721">
<title>Generating Makefiles </title>
<section href="apa.html#id5496788" id="id5496788">
<title>Make Clean</title>
</section>
<section href="apa.html#id5496920" id="id5496920">
<title>The MODULES File</title>
</section>
</section>
<section href="apa.html#id5496953" id="id5496953">
<title>Using Imake in Module Building </title>
</section>
<section href="apa.html#id5497051" id="id5497051">
<title>Using Generated Makefiles</title>
<table href="apa.html#id5497181" id="id5497181">
<title>Table A-1. User-definable make Variables</title>
</table>
<table href="apa.html#id5497527" id="id5497527">
<title>Table A-2. System-required Variables</title>
</table>
</section>
<section href="apa.html#id5497715" id="id5497715">
<title>Default Makefile Actions</title>
<section href="apa.html#id5497818" id="id5497818">
<title>Installing Credit Files</title>
</section>
</section>
</appendix>
<appendix href="apb.html" id="id5497954">
<title>Appendix B. The Firing Algorithm</title>
<section href="apb.html#id5497968" id="id5497968">
<title>Module Firing</title>
<table href="apb.html#id5498234" id="id5498234">
<title>Table B-1. Topology Influence Table for DisplayImg</title>
</table>
<figure href="apb.html#id5498632" id="id5498632">
<title>Figure B-1. Map Topology</title>
</figure>
<section href="apb.html#id5498661" id="id5498661">
<title>Handling Topology Changes</title>
</section>
<section href="apb.html#id5498696" id="id5498696">
<title>Using Frames for Data Ordering</title>
<figure href="apb.html#id5498756" id="id5498756">
<title>Figure B-2. Multiple Firing in a Map</title>
</figure>
</section>
<section href="apb.html#id5498879" id="id5498879">
<title>Identifying Frames</title>
<section href="apb.html#id5498977" id="id5498977">
<title>Propagation of Frame IDs</title>
<figure href="apb.html#id5499033" id="id5499033">
<title>Figure B-3. Frame Identifiers</title>
</figure>
</section>
<section href="apb.html#id5499055" id="id5499055">
<title>Frame Ordering</title>
</section>
</section>
<section href="apb.html#id5499143" id="id5499143">
<title>Frame Construction</title>
<figure href="apb.html#id5499166" id="id5499166">
<title>Figure B-4. Map Firings</title>
</figure>
<figure href="apb.html#id5499307" id="id5499307">
<title>Figure B-5. Frame Assembly</title>
</figure>
<section href="apb.html#id5499327" id="id5499327">
<title>Setting Frame Dependences</title>
</section>
</section>
<section href="apb.html#id5499380" id="id5499380">
<title>Sending Data Downstream</title>
<figure href="apb.html#id5499580" id="id5499580">
<title>Figure B-6. Parallel Data Flows</title>
</figure>
</section>
<section href="apb.html#id5499651" id="id5499651">
<title>Handling Fan-in Connections</title>
</section>
<section href="apb.html#id5499737" id="id5499737">
<title>Merging Frames on Input Ports</title>
<figure href="apb.html#id5499770" id="id5499770">
<title>Figure B-7. Data Handling in a Module</title>
</figure>
<section href="apb.html#id5499852" id="id5499852">
<title>Disabled Modules</title>
</section>
</section>
<section href="apb.html#id5499867" id="id5499867">
<title>Incorporating Parameters</title>
<section href="apb.html#id5499902" id="id5499902">
<title>Setting Widgets</title>
</section>
</section>
</section>
</appendix>
<index href="ix01.html" id="ix">
<title>Index</title>
</index>
</book>
</toc>
