~ubuntu-branches/ubuntu/karmic/lcms/karmic

« back to all changes in this revision

Viewing changes to src/cmsmtrx.c

  • Committer: Bazaar Package Importer
  • Author(s): Oleksandr Moskalenko
  • Date: 2008-07-24 14:29:36 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20080724142936-9fgs00bge01jgdl5
Tags: 1.17.dfsg-1
Removed Adobe sRGB profiles from the testdbed and python/testbed
directories (Closes: #491995).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
//
2
2
//  Little cms
3
 
//  Copyright (C) 1998-2006 Marti Maria
 
3
//  Copyright (C) 1998-2007 Marti Maria
4
4
//
5
5
// Permission is hereby granted, free of charge, to any person obtaining 
6
6
// a copy of this software and associated documentation files (the "Software"), 
42
42
double cdecl VEC3distance(LPVEC3 a, LPVEC3 b);
43
43
 
44
44
 
45
 
void   cdecl MAT3identity(LPMAT3 a);
46
 
void   cdecl MAT3per(LPMAT3 r, LPMAT3 a, LPMAT3 b);
47
 
int    cdecl MAT3inverse(LPMAT3 a, LPMAT3 b);
48
 
BOOL   cdecl MAT3solve(LPVEC3 x, LPMAT3 a, LPVEC3 b);
49
 
double cdecl MAT3det(LPMAT3 m);
50
 
void   cdecl MAT3eval(LPVEC3 r, LPMAT3 a, LPVEC3 v);
51
 
void   cdecl MAT3toFix(LPWMAT3 r, LPMAT3 v);
52
 
void   cdecl MAT3evalW(LPWVEC3 r, LPWMAT3 a, LPWVEC3 v);
53
 
void   cdecl MAT3perK(LPMAT3 r, LPMAT3 v, double d);
54
 
void   cdecl MAT3scaleAndCut(LPWMAT3 r, LPMAT3 v, double d);
 
45
void      cdecl MAT3identity(LPMAT3 a);
 
46
void      cdecl MAT3per(LPMAT3 r, LPMAT3 a, LPMAT3 b);
 
47
int       cdecl MAT3inverse(LPMAT3 a, LPMAT3 b);
 
48
LCMSBOOL  cdecl MAT3solve(LPVEC3 x, LPMAT3 a, LPVEC3 b);
 
49
double    cdecl MAT3det(LPMAT3 m);
 
50
void      cdecl MAT3eval(LPVEC3 r, LPMAT3 a, LPVEC3 v);
 
51
void      cdecl MAT3toFix(LPWMAT3 r, LPMAT3 v);
 
52
void      cdecl MAT3evalW(LPWVEC3 r, LPWMAT3 a, LPWVEC3 v);
 
53
void      cdecl MAT3perK(LPMAT3 r, LPMAT3 v, double d);
 
54
void      cdecl MAT3scaleAndCut(LPWMAT3 r, LPMAT3 v, double d);
55
55
 
56
56
// --------------------- Implementation ----------------------------
57
57
 
316
316
// Check id two vectors are the same, allowing tolerance
317
317
 
318
318
static
319
 
BOOL RangeCheck(double l, double h, double v)
 
319
LCMSBOOL RangeCheck(double l, double h, double v)
320
320
{
321
321
       return (v >= l && v <= h);
322
322
}
323
323
 
324
324
 
325
 
BOOL VEC3equal(LPWVEC3 a, LPWVEC3 b, double Tolerance)
 
325
LCMSBOOL VEC3equal(LPWVEC3 a, LPWVEC3 b, double Tolerance)
326
326
{
327
327
       int i;
328
328
       double c;
338
338
       return TRUE;
339
339
}
340
340
 
341
 
BOOL VEC3equalF(LPVEC3 a, LPVEC3 b, double Tolerance)
 
341
LCMSBOOL VEC3equalF(LPVEC3 a, LPVEC3 b, double Tolerance)
342
342
{
343
343
       int i;
344
344
       double c;
433
433
 
434
434
// Check if matrix is Identity. Allow a tolerance as %
435
435
 
436
 
BOOL MAT3isIdentity(LPWMAT3 a, double Tolerance)
 
436
LCMSBOOL MAT3isIdentity(LPWMAT3 a, double Tolerance)
437
437
{
438
438
       int i;
439
439
       MAT3 Idd;
516
516
 
517
517
// Solve a system in the form Ax = b
518
518
 
519
 
BOOL MAT3solve(LPVEC3 x, LPMAT3 a, LPVEC3 b)
 
519
LCMSBOOL MAT3solve(LPVEC3 x, LPMAT3 a, LPVEC3 b)
520
520
{
521
521
        MAT3 m, a_1;
522
522