-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgrade.h
90 lines (75 loc) · 4.68 KB
/
grade.h
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
//***************************************************************************
// NARS2000 -- Up/down Grade header
//***************************************************************************
/***************************************************************************
NARS2000 -- An Experimental APL Interpreter
Copyright (C) 2006-2011 Sudley Place Software
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***************************************************************************/
typedef struct tagTT_HANDLES // Translate Table handles & ptrs
{
HGLOBAL hGlbTT; // TT global memory handle
LPAPLCHAR lpMemTT; // Ptr to TT global memory
} TT_HANDLES, *LPTT_HANDLES;
typedef struct tagGRADE_DATA
{
APLSTYPE aplTypeRht; // Right arg storage type
APLUINT aplNELMRest, // Product of right arg dims after the first
aplNELMRht; // Right arg NELM
APLINT apaOffRht, // Right arg APA offset
apaMulRht; // Right arg APA multiplier
int iMul; // Multiplier for GradeUp vs. GradeDown
// 1 for GradeUp, -1 for GradeDown
APLRANK aplRankLft; // Left arg rank
LPTT_HANDLES lpMemTTHandles; // Ptr to TT Handles global memory
UBOOL PV0:1, // Right arg is a Perumtation Vector, origin-0
PV1:1; // ... 1
LPUBOOL lpbCtrlBreak; // Ptr to Ctrl-Break flag
} GRADE_DATA, *LPGRADE_DATA;
typedef struct tagPDIE
{
APLUINT Index:63, // Grade-up index
Used :1; // TRUE iff it's been used
} PDIE, *LPPDIE;
typedef void (*LPMEOCOM) (APLSTYPE, // Left arg storage type
LPVOID, // Ptr to left arg global memory
LPPDIE, // Ptr to left arg grade-up global memory
APLINT, // Loop counter
APLSTYPE, // Right arg storage type
APLNELM, // Right arg NELM
LPVOID, // Ptr to right arg global memory
LPPDIE, // Ptr to right arg grade-up global memory
APLFLOAT, // []CT
LPAPLBOOL); // Ptr to result global memory
typedef void (*LPMIOCOM) (APLSTYPE, // Left arg storage type
APLNELM, // Left arg NELM
LPVOID, // Ptr to left arg global memory
LPPDIE, // Ptr to left arg grade-up global memory
APLSTYPE, // Right arg storage type
LPVOID, // Ptr to right arg global memory
LPPDIE, // Ptr to right arg grade-up global memory
APLINT, // Loop counter
UBOOL, // []IO
APLFLOAT, // []CT
APLUINT, // Not found value
LPAPLUINT); // Ptr to result global memory
typedef APLBOOL (*LPMMCOM) (APLSTYPE , // Left arg storage type
APLNELM , // Left arg NELM
LPVOID , // Ptr to left arg global memory
LPPDIE , // Ptr to left arg grade-up global memory
APLSTYPE , // Right arg storage type
LPVOID , // Ptr to right arg global memory
LPPDIE , // Ptr to right arg grade-up global memory
LPUBOOL ); // Ptr to Ctrl-Break flag
//***************************************************************************
// End of File: grade.h
//***************************************************************************