Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
SIccCalcOp Struct Reference

Structure: SIccCalcOp. More...

#include <IccMpeCalc.h>

+ Collaboration diagram for SIccCalcOp:

Public Member Functions

icUInt16Number ArgsPushed (CIccMpeCalculator *pCalc)
 Name: SIccCalcOp::ArgsPushed.
 
icUInt16Number ArgsUsed (CIccMpeCalculator *pCalc)
 Name: SIccCalcOp::ArgsUsed.
 
void Describe (std::string &desc, int nVerboseness=100)
 Name: SIccCalcOp::Describe.
 
bool IsValidOp (CIccMpeCalculator *pCalc)
 

Static Public Member Functions

static bool IsValidOp (icSigCalcOp sig)
 Name: SIccCalcOp::IsValidOp.
 

Public Attributes

union { 
 
   icFloat32Number   num 
 
   struct { 
 
      icUInt16Number   v1 
 
      icUInt16Number   v2 
 
   }   select 
 
   icUInt32Number   size 
 
data 
 
IIccOpDefdef
 
unsigned long extra
 
icSigCalcOp sig
 

Detailed Description

Structure: SIccCalcOp.

Purpose: A structure to keep track of channel operations

Definition at line 230 of file IccMpeCalc.h.

Member Function Documentation

◆ ArgsPushed()

icUInt16Number SIccCalcOp::ArgsPushed ( CIccMpeCalculator * pCalc)

Name: SIccCalcOp::ArgsPushed.

Purpose:

Args:

Return:

Definition at line 2354 of file IccMpeCalc.cpp.

2355{
2356 switch (sig) {
2357 case icSigOutputChanOp:
2358 case icSigTempPutChanOp:
2359
2360 case icSigPopOp:
2361 case icSigIfOp:
2362 case icSigSelectOp:
2363 /*case icSigElseOp:*/ //This is only valid after an icSigIfOp is parsed
2364 /*case icSigCaseOp:*/ //This is only valid after an icSigSelectOp is parsed
2365 /*case icSigDefaultOp:*/ //This is only valid after an icSigSelectOp is parsed
2366 return 0;
2367
2368 case icSigDataOp:
2369 case icSigPiOp:
2370 case icSigPosInfinityOp:
2371 case icSigNegInfinityOp:
2372 case icSigNotaNumberOp:
2373 return 1;
2374
2375 case icSigEnvVarOp:
2376 return 2;
2377
2378 case icSigInputChanOp:
2379 case icSigTempGetChanOp:
2381 return data.select.v2+1;
2382
2383 case icSigApplyCurvesOp:
2384 case icSigApplyMatrixOp:
2385 case icSigApplyCLutOp:
2386 case icSigApplyTintOp:
2387 case icSigApplyToJabOp:
2389 case icSigApplyCalcOp:
2390 case icSigApplyElemOp:
2391 {
2392 CIccMultiProcessElement *pMpe = pCalc->GetElem(sig, data.select.v1);
2393 return (pMpe ? pMpe->NumOutputChannels() : 0);
2394 }
2395
2396 case icSigCopyOp:
2397 return (data.select.v1+1)*(data.select.v2+2);
2398 case icSigRotateLeftOp:
2399 case icSigRotateRightOp:
2400 return (data.select.v1+1);
2401
2402 case icSigFlipOp:
2403 return (data.select.v1+2);
2404
2405 case icSigPositionDupOp:
2406 return data.select.v1+2+data.select.v2;
2407
2408 case icSigSolveOp:
2409 return (data.select.v2+1) + 1;
2410
2411 case icSigTransposeOp:
2412 return (data.select.v1+1)*(data.select.v2+1);
2413
2414 case icSigSumOp:
2415 case icSigProductOp:
2416 case icSigMinimumOp:
2417 case icSigMaximumOp:
2418 case icSigAndOp:
2419 case icSigOrOp:
2420 return 1;
2421
2422 case icSigAddOp:
2423 case icSigSubtractOp:
2424 case icSigMultiplyOp:
2425 case icSigDivideOp:
2426 case icSigModulusOp:
2427 case icSigPowOp:
2428 case icSigGammaOp:
2429 case icSigScalarAddOp:
2433 case icSigSquareOp:
2434 case icSigSquareRootOp:
2435 case icSigCubeOp:
2436 case icSigCubeRootOp:
2437 case icSigSignOp:
2438 case icSigAbsoluteValOp:
2439 case icSigTruncateOp:
2440 case icSigFloorOp:
2441 case icSigCeilingOp:
2442 case icSigRoundOp:
2443 case icSigRealNumberOp:
2444 case icSigNegOp:
2445 case icSigExpOp:
2446 case icSigLogrithmOp:
2447 case icSigNaturalLogOp:
2448 case icSigSineOp:
2449 case icSigCosineOp:
2450 case icSigTangentOp:
2451 case icSigArcSineOp:
2452 case icSigArcCosineOp:
2453 case icSigArcTangentOp:
2454 case icSigArcTan2Op:
2455 case icSigLessThanOp:
2457 case icSigEqualOp:
2458 case icSigNotEqualOp:
2459 case icSigNearOp:
2461 case icSigGreaterThanOp:
2462 case icSigNotOp:
2465 case icSigVectorAndOp:
2466 case icSigVectorOrOp:
2467 return data.select.v1+1;
2468
2471 return (data.select.v1+1)*2;
2472
2473 case icSigToLabOp:
2474 case icSigToXYZOp:
2475 return (data.select.v1+1)*3;
2476
2477 default:
2478 return 0;
2479 }
2480}
@ icSigPiOp
Definition IccMpeCalc.h:113
@ icSigCubeOp
Definition IccMpeCalc.h:169
@ icSigEnvVarOp
Definition IccMpeCalc.h:126
@ icSigArcTangentOp
Definition IccMpeCalc.h:185
@ icSigSquareRootOp
Definition IccMpeCalc.h:168
@ icSigFloorOp
Definition IccMpeCalc.h:173
@ icSigApplyFromJabOp
Definition IccMpeCalc.h:134
@ icSigOrOp
Definition IccMpeCalc.h:152
@ icSigScalarAddOp
Definition IccMpeCalc.h:163
@ icSigMinimumOp
Definition IccMpeCalc.h:149
@ icSigApplyCLutOp
Definition IccMpeCalc.h:131
@ icSigSineOp
Definition IccMpeCalc.h:180
@ icSigSumOp
Definition IccMpeCalc.h:147
@ icSigSignOp
Definition IccMpeCalc.h:171
@ icSigProductOp
Definition IccMpeCalc.h:148
@ icSigPolarToCartesianOp
Definition IccMpeCalc.h:188
@ icSigTempPutChanOp
Definition IccMpeCalc.h:122
@ icSigCosineOp
Definition IccMpeCalc.h:181
@ icSigNaturalLogOp
Definition IccMpeCalc.h:179
@ icSigNegInfinityOp
Definition IccMpeCalc.h:115
@ icSigLessThanOp
Definition IccMpeCalc.h:190
@ icSigAndOp
Definition IccMpeCalc.h:151
@ icSigSquareOp
Definition IccMpeCalc.h:167
@ icSigNotOp
Definition IccMpeCalc.h:197
@ icSigGreaterThanOp
Definition IccMpeCalc.h:196
@ icSigRotateRightOp
Definition IccMpeCalc.h:141
@ icSigModulusOp
Definition IccMpeCalc.h:160
@ icSigNegOp
Definition IccMpeCalc.h:155
@ icSigGammaOp
Definition IccMpeCalc.h:162
@ icSigNotaNumberOp
Definition IccMpeCalc.h:116
@ icSigApplyCurvesOp
Definition IccMpeCalc.h:129
@ icSigFlipOp
Definition IccMpeCalc.h:143
@ icSigArcSineOp
Definition IccMpeCalc.h:183
@ icSigEqualOp
Definition IccMpeCalc.h:192
@ icSigNearOp
Definition IccMpeCalc.h:194
@ icSigDataOp
Definition IccMpeCalc.h:112
@ icSigPowOp
Definition IccMpeCalc.h:161
@ icSigVectorMaximumOp
Definition IccMpeCalc.h:201
@ icSigScalarSubtractOp
Definition IccMpeCalc.h:164
@ icSigSelectOp
Definition IccMpeCalc.h:214
@ icSigCartesianToPolarOp
Definition IccMpeCalc.h:187
@ icSigArcCosineOp
Definition IccMpeCalc.h:184
@ icSigAddOp
Definition IccMpeCalc.h:156
@ icSigRealNumberOp
Definition IccMpeCalc.h:189
@ icSigRoundOp
Definition IccMpeCalc.h:176
@ icSigApplyElemOp
Definition IccMpeCalc.h:136
@ icSigAbsoluteValOp
Definition IccMpeCalc.h:172
@ icSigOutputChanOp
Definition IccMpeCalc.h:120
@ icSigLessThanEqualOp
Definition IccMpeCalc.h:191
@ icSigCopyOp
Definition IccMpeCalc.h:139
@ icSigSubtractOp
Definition IccMpeCalc.h:157
@ icSigCubeRootOp
Definition IccMpeCalc.h:170
@ icSigPopOp
Definition IccMpeCalc.h:144
@ icSigLogrithmOp
Definition IccMpeCalc.h:178
@ icSigScalarDivideOp
Definition IccMpeCalc.h:166
@ icSigApplyToJabOp
Definition IccMpeCalc.h:133
@ icSigDivideOp
Definition IccMpeCalc.h:159
@ icSigTangentOp
Definition IccMpeCalc.h:182
@ icSigApplyTintOp
Definition IccMpeCalc.h:132
@ icSigTruncateOp
Definition IccMpeCalc.h:175
@ icSigRotateLeftOp
Definition IccMpeCalc.h:140
@ icSigApplyCalcOp
Definition IccMpeCalc.h:135
@ icSigIfOp
Definition IccMpeCalc.h:210
@ icSigApplyMatrixOp
Definition IccMpeCalc.h:130
@ icSigScalarMultiplyOp
Definition IccMpeCalc.h:165
@ icSigPositionDupOp
Definition IccMpeCalc.h:142
@ icSigArcTan2Op
Definition IccMpeCalc.h:186
@ icSigGreaterThanEqualOp
Definition IccMpeCalc.h:195
@ icSigToXYZOp
Definition IccMpeCalc.h:199
@ icSigVectorOrOp
Definition IccMpeCalc.h:203
@ icSigSolveOp
Definition IccMpeCalc.h:206
@ icSigToLabOp
Definition IccMpeCalc.h:198
@ icSigInputChanOp
Definition IccMpeCalc.h:119
@ icSigVectorMinimumOp
Definition IccMpeCalc.h:200
@ icSigExpOp
Definition IccMpeCalc.h:177
@ icSigTransposeOp
Definition IccMpeCalc.h:207
@ icSigNotEqualOp
Definition IccMpeCalc.h:193
@ icSigVectorAndOp
Definition IccMpeCalc.h:202
@ icSigPosInfinityOp
Definition IccMpeCalc.h:114
@ icSigTempSaveChanOp
Definition IccMpeCalc.h:123
@ icSigMultiplyOp
Definition IccMpeCalc.h:158
@ icSigTempGetChanOp
Definition IccMpeCalc.h:121
@ icSigMaximumOp
Definition IccMpeCalc.h:150
@ icSigCeilingOp
Definition IccMpeCalc.h:174
CIccMultiProcessElement * GetElem(icSigCalcOp op, icUInt16Number index)
Name: CIccMpeCalculator::GetSubApply.
Class: CIccMultiProcessElement.
Definition IccTagMPE.h:146
virtual icUInt16Number NumOutputChannels() const
Definition IccTagMPE.h:160
icSigCalcOp sig
Definition IccMpeCalc.h:233
union SIccCalcOp::@1 data

References data, CIccMpeCalculator::GetElem(), icSigAbsoluteValOp, icSigAddOp, icSigAndOp, icSigApplyCalcOp, icSigApplyCLutOp, icSigApplyCurvesOp, icSigApplyElemOp, icSigApplyFromJabOp, icSigApplyMatrixOp, icSigApplyTintOp, icSigApplyToJabOp, icSigArcCosineOp, icSigArcSineOp, icSigArcTan2Op, icSigArcTangentOp, icSigCartesianToPolarOp, icSigCeilingOp, icSigCopyOp, icSigCosineOp, icSigCubeOp, icSigCubeRootOp, icSigDataOp, icSigDivideOp, icSigEnvVarOp, icSigEqualOp, icSigExpOp, icSigFlipOp, icSigFloorOp, icSigGammaOp, icSigGreaterThanEqualOp, icSigGreaterThanOp, icSigIfOp, icSigInputChanOp, icSigLessThanEqualOp, icSigLessThanOp, icSigLogrithmOp, icSigMaximumOp, icSigMinimumOp, icSigModulusOp, icSigMultiplyOp, icSigNaturalLogOp, icSigNearOp, icSigNegInfinityOp, icSigNegOp, icSigNotaNumberOp, icSigNotEqualOp, icSigNotOp, icSigOrOp, icSigOutputChanOp, icSigPiOp, icSigPolarToCartesianOp, icSigPopOp, icSigPosInfinityOp, icSigPositionDupOp, icSigPowOp, icSigProductOp, icSigRealNumberOp, icSigRotateLeftOp, icSigRotateRightOp, icSigRoundOp, icSigScalarAddOp, icSigScalarDivideOp, icSigScalarMultiplyOp, icSigScalarSubtractOp, icSigSelectOp, icSigSignOp, icSigSineOp, icSigSolveOp, icSigSquareOp, icSigSquareRootOp, icSigSubtractOp, icSigSumOp, icSigTangentOp, icSigTempGetChanOp, icSigTempPutChanOp, icSigTempSaveChanOp, icSigToLabOp, icSigToXYZOp, icSigTransposeOp, icSigTruncateOp, icSigVectorAndOp, icSigVectorMaximumOp, icSigVectorMinimumOp, icSigVectorOrOp, CIccMultiProcessElement::NumOutputChannels(), and sig.

Referenced by IIccOpDef::ArgsPushed(), and CIccCalculatorFunc::CheckUnderflowOverflow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ArgsUsed()

icUInt16Number SIccCalcOp::ArgsUsed ( CIccMpeCalculator * pCalc)

Name: SIccCalcOp::ArgsUsed.

Purpose:

Args:

Return:

Definition at line 2222 of file IccMpeCalc.cpp.

2223{
2224 switch (sig) {
2225 case icSigDataOp:
2226 case icSigPiOp:
2227 case icSigPosInfinityOp:
2228 case icSigNegInfinityOp:
2229 case icSigNotaNumberOp:
2230 case icSigInputChanOp:
2231 case icSigTempGetChanOp:
2232 case icSigEnvVarOp:
2233 return 0;
2234
2235 case icSigApplyCurvesOp:
2236 case icSigApplyMatrixOp:
2237 case icSigApplyCLutOp:
2238 case icSigApplyTintOp:
2239 case icSigApplyToJabOp:
2241 case icSigApplyCalcOp:
2242 case icSigApplyElemOp:
2243 {
2244 CIccMultiProcessElement *pMpe = pCalc->GetElem(sig, data.select.v1);
2245 return (pMpe ? pMpe->NumInputChannels() : 0);
2246 }
2247
2248 case icSigOutputChanOp:
2249 case icSigTempPutChanOp:
2251 return data.select.v2+1;
2252
2253 case icSigCopyOp:
2254 case icSigRotateLeftOp:
2255 case icSigRotateRightOp:
2256 case icSigPositionDupOp:
2257 case icSigPopOp:
2258 return data.select.v1+1;
2259
2260 case icSigSolveOp:
2261 return (data.select.v1+1)*(data.select.v2+1) + (data.select.v1+1);
2262
2263 case icSigTransposeOp:
2264 return (data.select.v1+1)*(data.select.v2+1);
2265
2266 case icSigFlipOp:
2267 return data.select.v1+2;
2268
2269 case icSigSumOp:
2270 case icSigProductOp:
2271 case icSigMinimumOp:
2272 case icSigMaximumOp:
2273 case icSigAndOp:
2274 case icSigOrOp:
2275 return data.select.v1+2;
2276
2277 case icSigGammaOp:
2278 case icSigScalarAddOp:
2282 return data.select.v1+2;
2283
2284 case icSigAddOp:
2285 case icSigSubtractOp:
2286 case icSigMultiplyOp:
2287 case icSigDivideOp:
2288 case icSigModulusOp:
2289 case icSigPowOp:
2290 case icSigArcTan2Op:
2291 case icSigLessThanOp:
2293 case icSigEqualOp:
2294 case icSigNotEqualOp:
2295 case icSigNearOp:
2297 case icSigGreaterThanOp:
2302 case icSigVectorAndOp:
2303 case icSigVectorOrOp:
2304 return (data.select.v1+1)*2;
2305
2306 case icSigSquareOp:
2307 case icSigSquareRootOp:
2308 case icSigCubeOp:
2309 case icSigCubeRootOp:
2310 case icSigSignOp:
2311 case icSigAbsoluteValOp:
2312 case icSigTruncateOp:
2313 case icSigFloorOp:
2314 case icSigCeilingOp:
2315 case icSigRoundOp:
2316 case icSigRealNumberOp:
2317 case icSigNegOp:
2318 case icSigExpOp:
2319 case icSigLogrithmOp:
2320 case icSigNaturalLogOp:
2321 case icSigSineOp:
2322 case icSigCosineOp:
2323 case icSigTangentOp:
2324 case icSigArcSineOp:
2325 case icSigArcCosineOp:
2326 case icSigArcTangentOp:
2327 case icSigNotOp:
2328 return data.select.v1+1;
2329
2330 case icSigToLabOp:
2331 case icSigToXYZOp:
2332 return (data.select.v1+1)*3;
2333
2334 case icSigIfOp:
2335 case icSigSelectOp:
2336 return 1;
2337
2338 default:
2339 return 0;
2340 }
2341}
virtual icUInt16Number NumInputChannels() const
Definition IccTagMPE.h:159

References data, CIccMpeCalculator::GetElem(), icSigAbsoluteValOp, icSigAddOp, icSigAndOp, icSigApplyCalcOp, icSigApplyCLutOp, icSigApplyCurvesOp, icSigApplyElemOp, icSigApplyFromJabOp, icSigApplyMatrixOp, icSigApplyTintOp, icSigApplyToJabOp, icSigArcCosineOp, icSigArcSineOp, icSigArcTan2Op, icSigArcTangentOp, icSigCartesianToPolarOp, icSigCeilingOp, icSigCopyOp, icSigCosineOp, icSigCubeOp, icSigCubeRootOp, icSigDataOp, icSigDivideOp, icSigEnvVarOp, icSigEqualOp, icSigExpOp, icSigFlipOp, icSigFloorOp, icSigGammaOp, icSigGreaterThanEqualOp, icSigGreaterThanOp, icSigIfOp, icSigInputChanOp, icSigLessThanEqualOp, icSigLessThanOp, icSigLogrithmOp, icSigMaximumOp, icSigMinimumOp, icSigModulusOp, icSigMultiplyOp, icSigNaturalLogOp, icSigNearOp, icSigNegInfinityOp, icSigNegOp, icSigNotaNumberOp, icSigNotEqualOp, icSigNotOp, icSigOrOp, icSigOutputChanOp, icSigPiOp, icSigPolarToCartesianOp, icSigPopOp, icSigPosInfinityOp, icSigPositionDupOp, icSigPowOp, icSigProductOp, icSigRealNumberOp, icSigRotateLeftOp, icSigRotateRightOp, icSigRoundOp, icSigScalarAddOp, icSigScalarDivideOp, icSigScalarMultiplyOp, icSigScalarSubtractOp, icSigSelectOp, icSigSignOp, icSigSineOp, icSigSolveOp, icSigSquareOp, icSigSquareRootOp, icSigSubtractOp, icSigSumOp, icSigTangentOp, icSigTempGetChanOp, icSigTempPutChanOp, icSigTempSaveChanOp, icSigToLabOp, icSigToXYZOp, icSigTransposeOp, icSigTruncateOp, icSigVectorAndOp, icSigVectorMaximumOp, icSigVectorMinimumOp, icSigVectorOrOp, CIccMultiProcessElement::NumInputChannels(), and sig.

Referenced by IIccOpDef::ArgsUsed(), and CIccCalculatorFunc::CheckUnderflowOverflow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Describe()

void SIccCalcOp::Describe ( std::string & desc,
int nVerboseness = 100 )

Name: SIccCalcOp::Describe.

Purpose:

Args:

Return:

Definition at line 1787 of file IccMpeCalc.cpp.

1788{
1789 char buf[300];
1790 if (sig==icSigDataOp) {
1791 sprintf(buf, "%.8g", data.num);
1792 desc = buf;
1793 return;
1794 }
1795
1796 char name[10];
1797 int i;
1798
1799 icGetSig(name, sig, false);
1800 name[5]=0;
1801 for (i=4; i>0; i--)
1802 if (name[i]==' ')
1803 name[i] = 0;
1804 if (!name[1])
1805 name[1] = '?';
1806 desc = &name[1];
1807
1808 switch (sig) {
1809 case icSigInputChanOp:
1810 case icSigOutputChanOp:
1811 case icSigTempGetChanOp:
1812 case icSigTempPutChanOp:
1814 if (!data.select.v2)
1815 sprintf(buf, "[%d]", data.select.v1);
1816 else
1817 sprintf(buf, "[%d,%d]", data.select.v1, data.select.v2+1);
1818 desc += buf;
1819 break;
1820
1821 case icSigEnvVarOp:
1822 {
1823 char varName[10];
1824 icGetSigStr(varName, (icSignature)data.size);
1825 int l=(int)strlen(varName);
1826 if (l==9) { //Remove h at end
1827 varName[8]=0;
1828 }
1829 else {
1830 for (l--; l>0; l--) {
1831 if (varName[l]!=' ')
1832 break;
1833 varName[l]=0;
1834 }
1835 }
1836 sprintf(buf, "(%s)", varName);
1837 desc += buf;
1838 }
1839 break;
1840
1841 case icSigApplyCurvesOp:
1842 case icSigApplyMatrixOp:
1843 case icSigApplyCLutOp:
1844 case icSigApplyTintOp:
1845 case icSigApplyToJabOp:
1847 case icSigApplyCalcOp:
1848 case icSigApplyElemOp:
1849 sprintf(buf, "(%d)", data.select.v1);
1850 desc += buf;
1851 break;
1852
1853 case icSigPopOp:
1854 sprintf(buf, "(%d)", data.select.v1+1);
1855 desc += buf;
1856 break;
1857
1858 case icSigSolveOp:
1859 case icSigTransposeOp:
1860 sprintf(buf, "(%d,%d)", data.select.v1+1, data.select.v2+1);
1861 desc += buf;
1862 break;
1863
1864 case icSigRotateLeftOp:
1865 case icSigRotateRightOp:
1866 sprintf(buf, "(%d,%d)", data.select.v1, data.select.v2);
1867 break;
1868
1869 case icSigCopyOp:
1870 case icSigPositionDupOp:
1871 if (!data.select.v2) {
1872 if (data.select.v1) {
1873 sprintf(buf, "(%d)", data.select.v1+1);
1874 desc += buf;
1875 }
1876 }
1877 else {
1878 sprintf(buf, "(%d,%d)", data.select.v1+1, data.select.v2+1);
1879 desc += buf;
1880 }
1881 break;
1882
1883 case icSigFlipOp:
1884 case icSigSumOp:
1885 case icSigProductOp:
1886 case icSigMinimumOp:
1887 case icSigMaximumOp:
1888 case icSigAndOp:
1889 case icSigOrOp:
1890 if (data.select.v1) {
1891 sprintf(buf, "(%d)", data.select.v1+2);
1892 desc += buf;
1893 }
1894 break;
1895
1896 case icSigGammaOp:
1897 case icSigScalarAddOp:
1901 case icSigAddOp:
1902 case icSigSubtractOp:
1903 case icSigMultiplyOp:
1904 case icSigDivideOp:
1905 case icSigModulusOp:
1906 case icSigPowOp:
1907 case icSigArcTan2Op:
1908 case icSigLessThanOp:
1910 case icSigEqualOp:
1911 case icSigNotEqualOp:
1912 case icSigNearOp:
1914 case icSigGreaterThanOp:
1915 case icSigSquareOp:
1916 case icSigSquareRootOp:
1917 case icSigCubeOp:
1918 case icSigCubeRootOp:
1919 case icSigSignOp:
1920 case icSigAbsoluteValOp:
1921 case icSigTruncateOp:
1922 case icSigFloorOp:
1923 case icSigCeilingOp:
1924 case icSigRoundOp:
1925 case icSigRealNumberOp:
1926 case icSigNegOp:
1927 case icSigExpOp:
1928 case icSigLogrithmOp:
1929 case icSigNaturalLogOp:
1930 case icSigSineOp:
1931 case icSigCosineOp:
1932 case icSigTangentOp:
1933 case icSigArcSineOp:
1934 case icSigArcCosineOp:
1935 case icSigArcTangentOp:
1938 case icSigNotOp:
1939 case icSigToLabOp:
1940 case icSigToXYZOp:
1943 case icSigVectorAndOp:
1944 case icSigVectorOrOp:
1945 if (data.select.v1) {
1946 sprintf(buf, "[%d]", data.select.v1+1);
1947 desc += buf;
1948 }
1949 break;
1950 }
1951}
const icChar * icGetSigStr(icChar *pBuf, icUInt32Number nSig)
Definition IccUtil.cpp:1056
const icChar * icGetSig(icChar *pBuf, icUInt32Number nSig, bool bGetHexVal)
Definition IccUtil.cpp:1028
icUInt32Number icSignature

References data, icGetSig(), icGetSigStr(), icSigAbsoluteValOp, icSigAddOp, icSigAndOp, icSigApplyCalcOp, icSigApplyCLutOp, icSigApplyCurvesOp, icSigApplyElemOp, icSigApplyFromJabOp, icSigApplyMatrixOp, icSigApplyTintOp, icSigApplyToJabOp, icSigArcCosineOp, icSigArcSineOp, icSigArcTan2Op, icSigArcTangentOp, icSigCartesianToPolarOp, icSigCeilingOp, icSigCopyOp, icSigCosineOp, icSigCubeOp, icSigCubeRootOp, icSigDataOp, icSigDivideOp, icSigEnvVarOp, icSigEqualOp, icSigExpOp, icSigFlipOp, icSigFloorOp, icSigGammaOp, icSigGreaterThanEqualOp, icSigGreaterThanOp, icSigInputChanOp, icSigLessThanEqualOp, icSigLessThanOp, icSigLogrithmOp, icSigMaximumOp, icSigMinimumOp, icSigModulusOp, icSigMultiplyOp, icSigNaturalLogOp, icSigNearOp, icSigNegOp, icSigNotEqualOp, icSigNotOp, icSigOrOp, icSigOutputChanOp, icSigPolarToCartesianOp, icSigPopOp, icSigPositionDupOp, icSigPowOp, icSigProductOp, icSigRealNumberOp, icSigRotateLeftOp, icSigRotateRightOp, icSigRoundOp, icSigScalarAddOp, icSigScalarDivideOp, icSigScalarMultiplyOp, icSigScalarSubtractOp, icSigSignOp, icSigSineOp, icSigSolveOp, icSigSquareOp, icSigSquareRootOp, icSigSubtractOp, icSigSumOp, icSigTangentOp, icSigTempGetChanOp, icSigTempPutChanOp, icSigTempSaveChanOp, icSigToLabOp, icSigToXYZOp, icSigTransposeOp, icSigTruncateOp, icSigVectorAndOp, icSigVectorMaximumOp, icSigVectorMinimumOp, icSigVectorOrOp, and sig.

Referenced by CIccConsoleDebugger::AfterOp(), CIccLogDebugger::AfterOp(), CIccConsoleDebugger::BeforeOp(), CIccLogDebugger::BeforeOp(), CIccCalculatorFunc::CheckUnderflowOverflow(), IIccOpDef::Describe(), CIccCalculatorFunc::DescribeSequence(), CIccOpDefInvalid::Exec(), CIccCalculatorFunc::HasUnsupportedOperations(), CIccCalculatorFunc::HasValidOperations(), and CIccCalculatorFunc::ParseFuncDef().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsValidOp() [1/2]

bool SIccCalcOp::IsValidOp ( CIccMpeCalculator * pCalc)

Definition at line 2191 of file IccMpeCalc.cpp.

2192{
2193 switch(sig) {
2194 case icSigApplyCurvesOp:
2195 case icSigApplyMatrixOp:
2196 case icSigApplyCLutOp:
2197 case icSigApplyTintOp:
2198 case icSigApplyToJabOp:
2200 case icSigApplyCalcOp:
2201 case icSigApplyElemOp:
2202 {
2203 CIccMultiProcessElement *pMpe = pCalc->GetElem(sig, data.select.v1);
2204 return pMpe != NULL;
2205 }
2206
2207 default:
2208 return IsValidOp(sig);
2209 }
2210}
static bool IsValidOp(icSigCalcOp sig)
Name: SIccCalcOp::IsValidOp.

References data, CIccMpeCalculator::GetElem(), icSigApplyCalcOp, icSigApplyCLutOp, icSigApplyCurvesOp, icSigApplyElemOp, icSigApplyFromJabOp, icSigApplyMatrixOp, icSigApplyTintOp, icSigApplyToJabOp, IsValidOp(), and sig.

+ Here is the call graph for this function:

◆ IsValidOp() [2/2]

bool SIccCalcOp::IsValidOp ( icSigCalcOp sig)
static

Name: SIccCalcOp::IsValidOp.

Purpose:

Args:

Return:

Definition at line 2073 of file IccMpeCalc.cpp.

2074{
2075 switch (sig) {
2076 case icSigDataOp:
2077 case icSigInputChanOp:
2078 case icSigOutputChanOp:
2079 case icSigTempGetChanOp:
2080 case icSigTempPutChanOp:
2082 case icSigEnvVarOp:
2083 case icSigApplyCurvesOp:
2084 case icSigApplyMatrixOp:
2085 case icSigApplyCLutOp:
2086 case icSigApplyTintOp:
2087 case icSigApplyToJabOp:
2089 case icSigApplyCalcOp:
2090 case icSigApplyElemOp:
2091 case icSigCopyOp:
2092 case icSigRotateLeftOp:
2093 case icSigRotateRightOp:
2094 case icSigPositionDupOp:
2095 case icSigFlipOp:
2096 case icSigPopOp:
2097 case icSigSolveOp:
2098 case icSigTransposeOp:
2099 case icSigPiOp:
2100 case icSigPosInfinityOp:
2101 case icSigNegInfinityOp:
2102 case icSigNotaNumberOp:
2103 case icSigSumOp:
2104 case icSigProductOp:
2105 case icSigAddOp:
2106 case icSigSubtractOp:
2107 case icSigMultiplyOp:
2108 case icSigDivideOp:
2109 case icSigModulusOp:
2110 case icSigPowOp:
2111 case icSigGammaOp:
2112 case icSigScalarAddOp:
2116 case icSigSquareOp:
2117 case icSigSquareRootOp:
2118 case icSigCubeOp:
2119 case icSigCubeRootOp:
2120 case icSigSignOp:
2121 case icSigAbsoluteValOp:
2122 case icSigTruncateOp:
2123 case icSigFloorOp:
2124 case icSigCeilingOp:
2125 case icSigRoundOp:
2126 case icSigNegOp:
2127 case icSigExpOp:
2128 case icSigLogrithmOp:
2129 case icSigNaturalLogOp:
2130 case icSigSineOp:
2131 case icSigCosineOp:
2132 case icSigTangentOp:
2133 case icSigArcSineOp:
2134 case icSigArcCosineOp:
2135 case icSigArcTangentOp:
2136 case icSigArcTan2Op:
2141 case icSigVectorAndOp:
2142 case icSigVectorOrOp:
2143 case icSigMinimumOp:
2144 case icSigMaximumOp:
2145 case icSigRealNumberOp:
2146 case icSigLessThanOp:
2148 case icSigEqualOp:
2149 case icSigNotEqualOp:
2150 case icSigNearOp:
2152 case icSigGreaterThanOp:
2153 case icSigAndOp:
2154 case icSigOrOp:
2155 case icSigNotOp:
2156 case icSigToLabOp:
2157 case icSigToXYZOp:
2158 case icSigIfOp:
2159 case icSigElseOp:
2160 case icSigSelectOp:
2161 case icSigCaseOp:
2162 case icSigDefaultOp:
2163 return true;
2164
2165 default:
2166 return false;
2167 }
2168}
@ icSigDefaultOp
Definition IccMpeCalc.h:216
@ icSigCaseOp
Definition IccMpeCalc.h:215
@ icSigElseOp
Definition IccMpeCalc.h:211

References icSigAbsoluteValOp, icSigAddOp, icSigAndOp, icSigApplyCalcOp, icSigApplyCLutOp, icSigApplyCurvesOp, icSigApplyElemOp, icSigApplyFromJabOp, icSigApplyMatrixOp, icSigApplyTintOp, icSigApplyToJabOp, icSigArcCosineOp, icSigArcSineOp, icSigArcTan2Op, icSigArcTangentOp, icSigCartesianToPolarOp, icSigCaseOp, icSigCeilingOp, icSigCopyOp, icSigCosineOp, icSigCubeOp, icSigCubeRootOp, icSigDataOp, icSigDefaultOp, icSigDivideOp, icSigElseOp, icSigEnvVarOp, icSigEqualOp, icSigExpOp, icSigFlipOp, icSigFloorOp, icSigGammaOp, icSigGreaterThanEqualOp, icSigGreaterThanOp, icSigIfOp, icSigInputChanOp, icSigLessThanEqualOp, icSigLessThanOp, icSigLogrithmOp, icSigMaximumOp, icSigMinimumOp, icSigModulusOp, icSigMultiplyOp, icSigNaturalLogOp, icSigNearOp, icSigNegInfinityOp, icSigNegOp, icSigNotaNumberOp, icSigNotEqualOp, icSigNotOp, icSigOrOp, icSigOutputChanOp, icSigPiOp, icSigPolarToCartesianOp, icSigPopOp, icSigPosInfinityOp, icSigPositionDupOp, icSigPowOp, icSigProductOp, icSigRealNumberOp, icSigRotateLeftOp, icSigRotateRightOp, icSigRoundOp, icSigScalarAddOp, icSigScalarDivideOp, icSigScalarMultiplyOp, icSigScalarSubtractOp, icSigSelectOp, icSigSignOp, icSigSineOp, icSigSolveOp, icSigSquareOp, icSigSquareRootOp, icSigSubtractOp, icSigSumOp, icSigTangentOp, icSigTempGetChanOp, icSigTempPutChanOp, icSigTempSaveChanOp, icSigToLabOp, icSigToXYZOp, icSigTransposeOp, icSigTruncateOp, icSigVectorAndOp, icSigVectorMaximumOp, icSigVectorMinimumOp, icSigVectorOrOp, and sig.

Referenced by IIccOpDef::IsValid(), IsValidOp(), and CIccCalculatorFunc::ParseFuncDef().

+ Here is the caller graph for this function:

Member Data Documentation

◆ [union]

union { ... } SIccCalcOp::data

Referenced by CIccCalculatorFunc::ApplySequence(), ArgsPushed(), ArgsUsed(), CIccCalculatorFunc::CheckUnderflowOverflow(), Describe(), CIccCalculatorFunc::DescribeSequence(), CIccCalculatorFunc::DoesOverflowInput(), CIccCalculatorFunc::DoesOverflowOutput(), CIccOpDefAbsoluteVal::Exec(), CIccOpDefAdd::Exec(), CIccOpDefAnd::Exec(), CIccOpDefArcCosine::Exec(), CIccOpDefArcSine::Exec(), CIccOpDefArcTan2::Exec(), CIccOpDefArcTangent::Exec(), CIccOpDefCartesianToPolar::Exec(), CIccOpDefCeiling::Exec(), CIccOpDefCopy::Exec(), CIccOpDefCosine::Exec(), CIccOpDefCube::Exec(), CIccOpDefCubeRoot::Exec(), CIccOpDefData::Exec(), CIccOpDefDivide::Exec(), CIccOpDefEnvVar::Exec(), CIccOpDefEqual::Exec(), CIccOpDefExp::Exec(), CIccOpDefFlip::Exec(), CIccOpDefFloor::Exec(), CIccOpDefFromLab::Exec(), CIccOpDefGamma::Exec(), CIccOpDefGreaterThan::Exec(), CIccOpDefGreaterThanEqual::Exec(), CIccOpDefInputChan::Exec(), CIccOpDefLessThan::Exec(), CIccOpDefLessThanEqual::Exec(), CIccOpDefLogrithm::Exec(), CIccOpDefMaximum::Exec(), CIccOpDefMinimum::Exec(), CIccOpDefModulus::Exec(), CIccOpDefMultiply::Exec(), CIccOpDefNaturalLog::Exec(), CIccOpDefNear::Exec(), CIccOpDefNeg::Exec(), CIccOpDefNot::Exec(), CIccOpDefNotEqual::Exec(), CIccOpDefOr::Exec(), CIccOpDefOutputChan::Exec(), CIccOpDefPolarToCartesian::Exec(), CIccOpDefPop::Exec(), CIccOpDefPositionDup::Exec(), CIccOpDefPow::Exec(), CIccOpDefProduct::Exec(), CIccOpDefRealNumber::Exec(), CIccOpDefRotateLeft::Exec(), CIccOpDefRotateRight::Exec(), CIccOpDefRound::Exec(), CIccOpDefScalarAdd::Exec(), CIccOpDefScalarDivide::Exec(), CIccOpDefScalarMultiply::Exec(), CIccOpDefScalarSubtract::Exec(), CIccOpDefSign::Exec(), CIccOpDefSine::Exec(), CIccOpDefSolve::Exec(), CIccOpDefSquare::Exec(), CIccOpDefSquareRoot::Exec(), CIccOpDefSubElement::Exec(), CIccOpDefSubtract::Exec(), CIccOpDefSum::Exec(), CIccOpDefTangent::Exec(), CIccOpDefTempGetChan::Exec(), CIccOpDefTempPutChan::Exec(), CIccOpDefTempSaveChan::Exec(), CIccOpDefToLab::Exec(), CIccOpDefTranspose::Exec(), CIccOpDefTruncate::Exec(), CIccOpDefVectorAnd::Exec(), CIccOpDefVectorMaximum::Exec(), CIccOpDefVectorMinimum::Exec(), CIccOpDefVectorOr::Exec(), CIccCalculatorFunc::InitSelectOp(), IsValidOp(), CIccCalculatorFunc::ParseFuncDef(), CIccCalculatorFunc::Read(), CIccCalculatorFunc::SequenceNeedTempReset(), and CIccCalculatorFunc::Write().

◆ def

◆ extra

◆ num

◆ [struct]

struct { ... } SIccCalcOp::select

Referenced by CIccCalculatorFunc::DoesOverflowInput(), CIccCalculatorFunc::DoesOverflowOutput(), CIccOpDefAbsoluteVal::Exec(), CIccOpDefAdd::Exec(), CIccOpDefAnd::Exec(), CIccOpDefArcCosine::Exec(), CIccOpDefArcSine::Exec(), CIccOpDefArcTan2::Exec(), CIccOpDefArcTangent::Exec(), CIccOpDefCartesianToPolar::Exec(), CIccOpDefCeiling::Exec(), CIccOpDefCopy::Exec(), CIccOpDefCosine::Exec(), CIccOpDefCube::Exec(), CIccOpDefCubeRoot::Exec(), CIccOpDefDivide::Exec(), CIccOpDefEqual::Exec(), CIccOpDefExp::Exec(), CIccOpDefFlip::Exec(), CIccOpDefFloor::Exec(), CIccOpDefFromLab::Exec(), CIccOpDefGamma::Exec(), CIccOpDefGreaterThan::Exec(), CIccOpDefGreaterThanEqual::Exec(), CIccOpDefInputChan::Exec(), CIccOpDefLessThan::Exec(), CIccOpDefLessThanEqual::Exec(), CIccOpDefLogrithm::Exec(), CIccOpDefMaximum::Exec(), CIccOpDefMinimum::Exec(), CIccOpDefModulus::Exec(), CIccOpDefMultiply::Exec(), CIccOpDefNaturalLog::Exec(), CIccOpDefNear::Exec(), CIccOpDefNeg::Exec(), CIccOpDefNot::Exec(), CIccOpDefNotEqual::Exec(), CIccOpDefOr::Exec(), CIccOpDefOutputChan::Exec(), CIccOpDefPolarToCartesian::Exec(), CIccOpDefPop::Exec(), CIccOpDefPositionDup::Exec(), CIccOpDefPow::Exec(), CIccOpDefProduct::Exec(), CIccOpDefRealNumber::Exec(), CIccOpDefRotateLeft::Exec(), CIccOpDefRotateRight::Exec(), CIccOpDefRound::Exec(), CIccOpDefScalarAdd::Exec(), CIccOpDefScalarDivide::Exec(), CIccOpDefScalarMultiply::Exec(), CIccOpDefScalarSubtract::Exec(), CIccOpDefSign::Exec(), CIccOpDefSine::Exec(), CIccOpDefSolve::Exec(), CIccOpDefSquare::Exec(), CIccOpDefSquareRoot::Exec(), CIccOpDefSubElement::Exec(), CIccOpDefSubtract::Exec(), CIccOpDefSum::Exec(), CIccOpDefTangent::Exec(), CIccOpDefTempGetChan::Exec(), CIccOpDefTempPutChan::Exec(), CIccOpDefTempSaveChan::Exec(), CIccOpDefToLab::Exec(), CIccOpDefTranspose::Exec(), CIccOpDefTruncate::Exec(), CIccOpDefVectorAnd::Exec(), CIccOpDefVectorMaximum::Exec(), CIccOpDefVectorMinimum::Exec(), CIccOpDefVectorOr::Exec(), CIccCalculatorFunc::GetMaxTemp(), CIccCalculatorFunc::ParseFuncDef(), and CIccCalculatorFunc::SequenceNeedTempReset().

◆ sig

◆ size

◆ v1

icUInt16Number SIccCalcOp::v1

Definition at line 243 of file IccMpeCalc.h.

Referenced by CIccCalculatorFunc::DoesOverflowInput(), CIccCalculatorFunc::DoesOverflowOutput(), CIccOpDefAbsoluteVal::Exec(), CIccOpDefAdd::Exec(), CIccOpDefAnd::Exec(), CIccOpDefArcCosine::Exec(), CIccOpDefArcSine::Exec(), CIccOpDefArcTan2::Exec(), CIccOpDefArcTangent::Exec(), CIccOpDefCartesianToPolar::Exec(), CIccOpDefCeiling::Exec(), CIccOpDefCopy::Exec(), CIccOpDefCosine::Exec(), CIccOpDefCube::Exec(), CIccOpDefCubeRoot::Exec(), CIccOpDefDivide::Exec(), CIccOpDefEqual::Exec(), CIccOpDefExp::Exec(), CIccOpDefFlip::Exec(), CIccOpDefFloor::Exec(), CIccOpDefFromLab::Exec(), CIccOpDefGamma::Exec(), CIccOpDefGreaterThan::Exec(), CIccOpDefGreaterThanEqual::Exec(), CIccOpDefInputChan::Exec(), CIccOpDefLessThan::Exec(), CIccOpDefLessThanEqual::Exec(), CIccOpDefLogrithm::Exec(), CIccOpDefMaximum::Exec(), CIccOpDefMinimum::Exec(), CIccOpDefModulus::Exec(), CIccOpDefMultiply::Exec(), CIccOpDefNaturalLog::Exec(), CIccOpDefNear::Exec(), CIccOpDefNeg::Exec(), CIccOpDefNot::Exec(), CIccOpDefNotEqual::Exec(), CIccOpDefOr::Exec(), CIccOpDefOutputChan::Exec(), CIccOpDefPolarToCartesian::Exec(), CIccOpDefPop::Exec(), CIccOpDefPositionDup::Exec(), CIccOpDefPow::Exec(), CIccOpDefProduct::Exec(), CIccOpDefRealNumber::Exec(), CIccOpDefRotateLeft::Exec(), CIccOpDefRotateRight::Exec(), CIccOpDefRound::Exec(), CIccOpDefScalarAdd::Exec(), CIccOpDefScalarDivide::Exec(), CIccOpDefScalarMultiply::Exec(), CIccOpDefScalarSubtract::Exec(), CIccOpDefSign::Exec(), CIccOpDefSine::Exec(), CIccOpDefSolve::Exec(), CIccOpDefSquare::Exec(), CIccOpDefSquareRoot::Exec(), CIccOpDefSubElement::Exec(), CIccOpDefSubtract::Exec(), CIccOpDefSum::Exec(), CIccOpDefTangent::Exec(), CIccOpDefTempGetChan::Exec(), CIccOpDefTempPutChan::Exec(), CIccOpDefTempSaveChan::Exec(), CIccOpDefToLab::Exec(), CIccOpDefTranspose::Exec(), CIccOpDefTruncate::Exec(), CIccOpDefVectorAnd::Exec(), CIccOpDefVectorMaximum::Exec(), CIccOpDefVectorMinimum::Exec(), CIccOpDefVectorOr::Exec(), CIccCalculatorFunc::GetMaxTemp(), CIccCalculatorFunc::ParseFuncDef(), and CIccCalculatorFunc::SequenceNeedTempReset().

◆ v2


The documentation for this struct was generated from the following files: