Errors.cxx
1 // Copyright (C) 2001-2009 Vivien Mallet
2 //
3 // This file is part of the linear-algebra library Seldon,
4 // http://seldon.sourceforge.net/.
5 //
6 // Seldon is free software; you can redistribute it and/or modify it under the
7 // terms of the GNU Lesser General Public License as published by the Free
8 // Software Foundation; either version 2.1 of the License, or (at your option)
9 // any later version.
10 //
11 // Seldon is distributed in the hope that it will be useful, but WITHOUT ANY
12 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
14 // more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public License
17 // along with Seldon. If not, see http://www.gnu.org/licenses/.
18 
19 
20 #ifndef SELDON_FILE_ERRORS_CXX
21 
22 #include "Errors.hxx"
23 
24 namespace Seldon
25 {
26 
27 
29  // ERROR //
31 
32 
33  /****************
34  * CONSTRUCTORS *
35  ****************/
36 
37 
39 
43  Error::Error(string function, string comment):
44  description_("ERROR!\nAn undefined error occurred"),
45  function_(function), comment_(comment)
46  {
47 #ifdef SELDON_WITH_ABORT
48  this->CoutWhat();
49  abort();
50 #endif
51  }
52 
53 
55 
60  Error::Error(string description, string function, string comment):
61  description_("ERROR!\n" + description),
62  function_(function), comment_(comment)
63  {
64  }
65 
66 
67  /**************
68  * DESTRUCTOR *
69  **************/
70 
71 
73 
77  {
78  }
79 
80 
81  /***********
82  * METHODS *
83  ***********/
84 
85 
87 
90  string Error::What()
91  {
92  string message(description_);
93  if (!function_.empty())
94  message += " in " + function_;
95  message += ".\n";
96  if (!comment_.empty())
97  message += " " + comment_;
98  return message;
99  }
100 
101 
103 
107  {
108 #ifdef SELDON_WITH_MPI
109  int rank_proc; MPI_Comm_rank(MPI_COMM_WORLD, &rank_proc);
110  cout << "Error on processor " << rank_proc << endl;
111 #endif
112 
113  cout << this->What() << endl;
114 
115 #ifdef SELDON_WITH_MPI
116  // waiting 5 seconds so that each processor should have the time
117  // to display its own errors before aborting the processus
118  //sleep(5);
119 
120  // other approach : imposing a Barrier
121  MPI_Barrier(MPI_COMM_WORLD);
122 #endif
123  }
124 
125 
126 
128  // UNDEFINED //
130 
131 
133 
137  Undefined::Undefined(string function, string comment):
138  Error("", function, comment)
139  {
140 #ifdef SELDON_WITH_ABORT
141  this->CoutWhat();
142  abort();
143 #endif
144  }
145 
146 
149  {
150  }
151 
152 
154 
158  {
159  string message;
160  if (!this->function_.empty())
161  message = this->function_;
162  else
163  message = "A function or a method";
164  message += " is undefined.\nEither its implementation is missing,"
165  + string(" or it does not make sense or it is impossible ")
166  + "to implement it.\n";
167  if (!this->comment_.empty())
168  message += " " + this->comment_;
169  return message;
170  }
171 
172 
174  // WRONGARGUMENT //
176 
177 
179 
183  WrongArgument::WrongArgument(string function, string comment):
184  Error("Wrong argument given to ", function, comment)
185  {
186 #ifdef SELDON_WITH_ABORT
187  this->CoutWhat();
188  abort();
189 #endif
190  }
191 
192 
195  {
196  }
197 
198 
200 
204  {
205  string message(this->description_);
206  if (!this->function_.empty())
207  message += this->function_;
208  message += ".\n";
209  if (!this->comment_.empty())
210  message += " " + this->comment_;
211  return message;
212  }
213 
214 
216  // NOMEMORY //
218 
219 
221 
225  NoMemory::NoMemory(string function, string comment):
226  Error("Out of memory", function, comment)
227  {
228 #ifdef SELDON_WITH_ABORT
229  this->CoutWhat();
230  abort();
231 #endif
232  }
233 
234 
237  {
238  }
239 
240 
242  // WRONGDIM //
244 
245 
247 
251  WrongDim::WrongDim(string function, string comment):
252  Error("Wrong dimensions involved", function, comment)
253  {
254 #ifdef SELDON_WITH_ABORT
255  this->CoutWhat();
256  abort();
257 #endif
258  }
259 
260 
263  {
264  }
265 
266 
268  // WRONGINDEX //
270 
271 
273 
277  WrongIndex::WrongIndex(string function, string comment):
278  Error("Index out of range", function, comment)
279  {
280 #ifdef SELDON_WITH_ABORT
281  this->CoutWhat();
282  abort();
283 #endif
284  }
285 
286 
289  {
290  }
291 
292 
294  // WRONGROW //
296 
297 
299 
303  WrongRow::WrongRow(string function, string comment):
304  Error("Row index out of range", function, comment)
305  {
306 #ifdef SELDON_WITH_ABORT
307  this->CoutWhat();
308  abort();
309 #endif
310  }
311 
312 
315  {
316  }
317 
318 
320  // WRONGCOL //
322 
323 
325 
329  WrongCol::WrongCol(string function, string comment):
330  Error("Column index out of range", function, comment)
331  {
332 #ifdef SELDON_WITH_ABORT
333  this->CoutWhat();
334  abort();
335 #endif
336  }
337 
338 
341  {
342  }
343 
344 
346  // IOERROR //
348 
349 
351 
355  IOError::IOError(string function, string comment):
356  Error("Error while performing an I/O operation", function, comment)
357  {
358 #ifdef SELDON_WITH_ABORT
359  this->CoutWhat();
360  abort();
361 #endif
362  }
363 
364 
367  {
368  }
369 
370 
372  // other errors //
374 
375 
377 
382  Error("Maximum number of iterations reached by the solver", function, comment)
383  {
384  }
385 
386 
389  {
390  }
391 
392 
394 
398  SolverDivergenceError::SolverDivergenceError(string function, string comment):
399  Error("Maximum number of iterations reached by the solver", function, comment)
400  {
401  }
402 
403 
406  {
407  }
408 
409 
411  // CheckBounds //
413 
414 
415  void CheckBounds(long i, long length1_, string nom)
416  {
417  if (i < 0 || i >= length1_)
418  throw WrongIndex(nom + "::operator()",
419  string("Index along dimension #1 should be in [0, ")
420  + to_str(length1_-1) + "], but is equal to "
421  + to_str(i) + ".");
422  }
423 
424 
425  void CheckBounds(int i, int j, int length1_, int length2_, string nom)
426  {
427  if (i < 0 || i >= length1_)
428  throw WrongIndex(nom + "::operator()",
429  string("Index along dimension #1 should be in [0, ")
430  + to_str(length1_-1) + "], but is equal to "
431  + to_str(i) + ".");
432  if (j < 0 || j >= length2_)
433  throw WrongIndex(nom + "::operator()",
434  string("Index along dimension #2 should be in [0, ")
435  + to_str(length2_-1) + "], but is equal to "
436  + to_str(j) + ".");
437  }
438 
439 
440  void CheckBoundsSym(int i, int j, int length1_, int length2_, string nom)
441  {
442  CheckBounds(i, j, length1_, length2_, nom);
443 
444  if (i > j)
445  throw WrongRow(nom+"::Val(int, int)",
446  string("Attempted to access to element (")
447  + to_str(i) + ", " + to_str(j)
448  + ") but row index should not be strictly"
449  + " greater than column index.");
450  }
451 
452 
453  void CheckBoundsTriang(int i, int j, int length1_, int length2_,
454  bool uplo, string nom)
455  {
456  CheckBounds(i, j, length1_, length2_, nom);
457 
458  if (uplo)
459  {
460  if (i > j)
461  throw WrongRow(nom + "::Val(int, int)",
462  string("Attempted to access to element (")
463  + to_str(i) + ", " + to_str(j) + string(") but row")
464  + string(" index should not be strictly more")
465  + " than column index (upper triangular matrix).");
466  }
467  else
468  {
469  if (j > i)
470  throw WrongCol(nom + "::Val(int, int)",
471  string("Attempted to access to element (")
472  + to_str(i) + ", " + to_str(j) + string(") but")
473  + string(" column index should not be strictly more")
474  + " than row index (lower triangular matrix).");
475  }
476  }
477 
478 
479  void CheckBounds(int i, int j, int k,
480  int length1_, int length2_, int length3_, string nom)
481  {
482  if (i < 0 || i >= length1_)
483  throw WrongIndex(nom + "::operator()",
484  string("Index along dimension #1 should be in [0, ")
485  + to_str(length1_-1) + "], but is equal to "
486  + to_str(i) + ".");
487  if (j < 0 || j >= length2_)
488  throw WrongIndex(nom + "::operator()",
489  string("Index along dimension #2 should be in [0, ")
490  + to_str(length2_-1) + "], but is equal to "
491  + to_str(j) + ".");
492  if (k < 0 || k >= length3_)
493  throw WrongIndex(nom + "::operator()",
494  string("Index along dimension #3 should be in [0, ")
495  + to_str(length3_-1) + "], but is equal to "
496  + to_str(k) + ".");
497  }
498 
499 
500  void CheckBounds(int i, int j, int k, int l, int length1_, int length2_,
501  int length3_, int length4_, string nom)
502  {
503  if (i < 0 || i >= length1_)
504  throw WrongIndex(nom + "::operator()",
505  string("Index along dimension #1 should be in [0, ")
506  + to_str(length1_-1) + "], but is equal to "
507  + to_str(i) + ".");
508  if (j < 0 || j >= length2_)
509  throw WrongIndex(nom + "::operator()",
510  string("Index along dimension #2 should be in [0, ")
511  + to_str(length2_-1) + "], but is equal to "
512  + to_str(j) + ".");
513  if (k < 0 || k >= length3_)
514  throw WrongIndex(nom + "::operator()",
515  string("Index along dimension #3 should be in [0, ")
516  + to_str(length3_-1) + "], but is equal to "
517  + to_str(k) + ".");
518  if (l < 0 || l >= length4_)
519  throw WrongIndex(nom + "::operator()",
520  string("Index along dimension #4 should be in [0, ")
521  + to_str(length4_-1) + "], but is equal to "
522  + to_str(l) + ".");
523  }
524 
525 
526  void CheckBounds(int i, int j, int k, int l, int m,
527  int length0, int length1, int length2, int length3,
528  int length4, string nom)
529  {
530  if (i < 0 || i >= length0)
531  throw WrongIndex(nom+"::operator()",
532  string("Index along dimension #1 should be in [0, ")
533  + to_str(length0 - 1) + "], but is equal to "
534  + to_str(i) + ".");
535  if (j < 0 || j >= length1)
536  throw WrongIndex(nom+"::operator()",
537  string("Index along dimension #2 should be in [0, ")
538  + to_str(length1 - 1) + "], but is equal to "
539  + to_str(j) + ".");
540  if (k < 0 || k >= length2)
541  throw WrongIndex(nom+"::operator()",
542  string("Index along dimension #3 should be in [0, ")
543  + to_str(length2 - 1) + "], but is equal to "
544  + to_str(k) + ".");
545  if (l < 0 || l >= length3)
546  throw WrongIndex(nom+"::operator()",
547  string("Index along dimension #4 should be in [0, ")
548  + to_str(length3 - 1) + "], but is equal to "
549  + to_str(l) + ".");
550  if (m < 0 || m >= length4)
551  throw WrongIndex(nom+"::operator()",
552  string("Index along dimension #5 should be in [0, ")
553  + to_str(length4 - 1) + "], but is equal to "
554  + to_str(m) + ".");
555  }
556 
557 
558  void CheckBounds(int i, int j, int k, int l, int m, int n,
559  int length0, int length1, int length2, int length3,
560  int length4, int length5, string nom)
561  {
562  if (i < 0 || i >= length0)
563  throw WrongIndex(nom+"::operator()",
564  string("Index along dimension #1 should be in [0, ")
565  + to_str(length0 - 1) + "], but is equal to "
566  + to_str(i) + ".");
567  if (j < 0 || j >= length1)
568  throw WrongIndex(nom+"::operator()",
569  string("Index along dimension #2 should be in [0, ")
570  + to_str(length1 - 1) + "], but is equal to "
571  + to_str(j) + ".");
572  if (k < 0 || k >= length2)
573  throw WrongIndex(nom+"::operator()",
574  string("Index along dimension #3 should be in [0, ")
575  + to_str(length2 - 1) + "], but is equal to "
576  + to_str(k) + ".");
577  if (l < 0 || l >= length3)
578  throw WrongIndex(nom+"::operator()",
579  string("Index along dimension #4 should be in [0, ")
580  + to_str(length3 - 1) + "], but is equal to "
581  + to_str(l) + ".");
582  if (m < 0 || m >= length4)
583  throw WrongIndex(nom+"::operator()",
584  string("Index along dimension #5 should be in [0, ")
585  + to_str(length4 - 1) + "], but is equal to "
586  + to_str(m) + ".");
587  if (n < 0 || n >= length5)
588  throw WrongIndex(nom+"::operator()",
589  string("Index along dimension #6 should be in [0, ")
590  + to_str(length5 - 1) + "], but is equal to "
591  + to_str(n) + ".");
592  }
593 
594 
595  void CheckBounds(int i, int j, int k, int l, int m, int n, int o,
596  int length0, int length1, int length2, int length3,
597  int length4, int length5, int length6, string nom)
598  {
599  if (i < 0 || i >= length0)
600  throw WrongIndex(nom+"::operator()",
601  string("Index along dimension #1 should be in [0, ")
602  + to_str(length0 - 1) + "], but is equal to "
603  + to_str(i) + ".");
604  if (j < 0 || j >= length1)
605  throw WrongIndex(nom+"::operator()",
606  string("Index along dimension #2 should be in [0, ")
607  + to_str(length1 - 1) + "], but is equal to "
608  + to_str(j) + ".");
609  if (k < 0 || k >= length2)
610  throw WrongIndex(nom+"::operator()",
611  string("Index along dimension #3 should be in [0, ")
612  + to_str(length2 - 1) + "], but is equal to "
613  + to_str(k) + ".");
614  if (l < 0 || l >= length3)
615  throw WrongIndex(nom+"::operator()",
616  string("Index along dimension #4 should be in [0, ")
617  + to_str(length3 - 1) + "], but is equal to "
618  + to_str(l) + ".");
619  if (m < 0 || m >= length4)
620  throw WrongIndex(nom+"::operator()",
621  string("Index along dimension #5 should be in [0, ")
622  + to_str(length4 - 1) + "], but is equal to "
623  + to_str(m) + ".");
624  if (n < 0 || n >= length5)
625  throw WrongIndex(nom+"::operator()",
626  string("Index along dimension #6 should be in [0, ")
627  + to_str(length5 - 1) + "], but is equal to "
628  + to_str(n) + ".");
629  if (o < 0 || o >= length6)
630  throw WrongIndex(nom+"::operator()",
631  string("Index along dimension #7 should be in [0, ")
632  + to_str(length6 - 1) + "], but is equal to "
633  + to_str(o) + ".");
634  }
635 
636 
637  void CheckBounds(int i, int j, int k, int l, int m, int n, int o, int p,
638  int length0, int length1, int length2, int length3,
639  int length4, int length5, int length6, int length7,
640  string nom)
641  {
642  if (i < 0 || i >= length0)
643  throw WrongIndex(nom+"::operator()",
644  string("Index along dimension #1 should be in [0, ")
645  + to_str(length0 - 1) + "], but is equal to "
646  + to_str(i) + ".");
647  if (j < 0 || j >= length1)
648  throw WrongIndex(nom+"::operator()",
649  string("Index along dimension #2 should be in [0, ")
650  + to_str(length1 - 1) + "], but is equal to "
651  + to_str(j) + ".");
652  if (k < 0 || k >= length2)
653  throw WrongIndex(nom+"::operator()",
654  string("Index along dimension #3 should be in [0, ")
655  + to_str(length2 - 1) + "], but is equal to "
656  + to_str(k) + ".");
657  if (l < 0 || l >= length3)
658  throw WrongIndex(nom+"::operator()",
659  string("Index along dimension #4 should be in [0, ")
660  + to_str(length3 - 1) + "], but is equal to "
661  + to_str(l) + ".");
662  if (m < 0 || m >= length4)
663  throw WrongIndex(nom+"::operator()",
664  string("Index along dimension #5 should be in [0, ")
665  + to_str(length4 - 1) + "], but is equal to "
666  + to_str(m) + ".");
667  if (n < 0 || n >= length5)
668  throw WrongIndex(nom+"::operator()",
669  string("Index along dimension #6 should be in [0, ")
670  + to_str(length5 - 1) + "], but is equal to "
671  + to_str(n) + ".");
672  if (o < 0 || o >= length6)
673  throw WrongIndex(nom+"::operator()",
674  string("Index along dimension #7 should be in [0, ")
675  + to_str(length6 - 1) + "], but is equal to "
676  + to_str(o) + ".");
677  if (p < 0 || p >= length7)
678  throw WrongIndex(nom+"::operator()",
679  string("Index along dimension #8 should be in [0, ")
680  + to_str(length7 - 1) + "], but is equal to "
681  + to_str(p) + ".");
682  }
683 
684 
685  void CheckBounds(int i, int j, int k, int l, int m, int n, int o, int p,
686  int q, int length0, int length1, int length2, int length3,
687  int length4, int length5, int length6, int length7,
688  int length8, string nom)
689  {
690  if (i < 0 || i >= length0)
691  throw WrongIndex(nom+"::operator()",
692  string("Index along dimension #1 should be in [0, ")
693  + to_str(length0 - 1) + "], but is equal to "
694  + to_str(i) + ".");
695  if (j < 0 || j >= length1)
696  throw WrongIndex(nom+"::operator()",
697  string("Index along dimension #2 should be in [0, ")
698  + to_str(length1 - 1) + "], but is equal to "
699  + to_str(j) + ".");
700  if (k < 0 || k >= length2)
701  throw WrongIndex(nom+"::operator()",
702  string("Index along dimension #3 should be in [0, ")
703  + to_str(length2 - 1) + "], but is equal to "
704  + to_str(k) + ".");
705  if (l < 0 || l >= length3)
706  throw WrongIndex(nom+"::operator()",
707  string("Index along dimension #4 should be in [0, ")
708  + to_str(length3 - 1) + "], but is equal to "
709  + to_str(l) + ".");
710  if (m < 0 || m >= length4)
711  throw WrongIndex(nom+"::operator()",
712  string("Index along dimension #5 should be in [0, ")
713  + to_str(length4 - 1) + "], but is equal to "
714  + to_str(m) + ".");
715  if (n < 0 || n >= length5)
716  throw WrongIndex(nom+"::operator()",
717  string("Index along dimension #6 should be in [0, ")
718  + to_str(length5 - 1) + "], but is equal to "
719  + to_str(n) + ".");
720  if (o < 0 || o >= length6)
721  throw WrongIndex(nom+"::operator()",
722  string("Index along dimension #7 should be in [0, ")
723  + to_str(length6 - 1) + "], but is equal to "
724  + to_str(o) + ".");
725  if (p < 0 || p >= length7)
726  throw WrongIndex(nom+"::operator()",
727  string("Index along dimension #8 should be in [0, ")
728  + to_str(length7 - 1) + "], but is equal to "
729  + to_str(p) + ".");
730  if (q < 0 || q >= length8)
731  throw WrongIndex(nom+"::operator()",
732  string("Index along dimension #9 should be in [0, ")
733  + to_str(length8 - 1) + "], but is equal to "
734  + to_str(q) + ".");
735  }
736 
737 
738  void CheckPointer(void* ptr, string name)
739  {
740  if (ptr == NULL)
741  throw WrongArgument(name, "Pointer is null");
742  }
743 
744 
746  // LAPACKERROR //
748 
749 
751 
756  LapackError::LapackError(int info, string function, string comment):
757  Error("Error returned by Lapack", function, comment), info_(info)
758  {
759 #ifdef SELDON_WITH_ABORT
760  this->CoutWhat();
761  abort();
762 #endif
763  }
764 
765 
768  {
769  }
770 
771 
773 
777  {
778  string message(this->description_);
779  if (!this->function_.empty())
780  message += " in " + this->function_;
781  message += ".\n";
782  if (!this->comment_.empty())
783  message += " " + this->comment_;
784  message += " Diagnostic integer (\"info\"): " + to_str(info_)
785  + ".\n";
786  return message;
787  }
788 
789 
791  // LAPACKINFO //
793 
794 
795  LapackInfo::LapackInfo(int info): info_(info)
796  {
797  }
798 
799 
800  LapackInfo::operator int ()
801  {
802  return info_;
803  }
804 
805 
806  int LapackInfo::GetInfo()
807  {
808  return info_;
809  }
810 
811 
812  int& LapackInfo::GetInfoRef()
813  {
814  return info_;
815  }
816 
817 
818 #ifndef SELDON_WITH_COMPILED_LIBRARY
819  LapackInfo lapack_info(0);
820 #endif
821 
822 
823 } // namespace Seldon.
824 
825 #define SELDON_FILE_ERRORS_CXX
826 #endif
Seldon::Undefined::What
virtual string What()
Delivers information about the error.
Definition: Errors.cxx:157
Seldon::Undefined::~Undefined
virtual ~Undefined()
Destructor (present to avoid duplicate symbols in .o files)
Definition: Errors.cxx:148
Seldon::SolverMaximumIterationError::~SolverMaximumIterationError
virtual ~SolverMaximumIterationError()
Destructor (present to avoid duplicate symbols in .o files)
Definition: Errors.cxx:388
Seldon::Undefined::Undefined
Undefined(string function="", string comment="")
Main constructor.
Definition: Errors.cxx:137
Seldon::Error::comment_
string comment_
A comment about the error.
Definition: Errors.hxx:46
Seldon::IOError::~IOError
virtual ~IOError()
Destructor (present to avoid duplicate symbols in .o files)
Definition: Errors.cxx:366
Seldon::to_str
std::string to_str(const T &input)
Converts most types to string.
Definition: CommonInline.cxx:137
Seldon::WrongCol::WrongCol
WrongCol(string function="", string comment="")
Main constructor.
Definition: Errors.cxx:329
Seldon::SolverDivergenceError::~SolverDivergenceError
virtual ~SolverDivergenceError()
Destructor (present to avoid duplicate symbols in .o files)
Definition: Errors.cxx:405
Seldon::SolverDivergenceError::SolverDivergenceError
SolverDivergenceError(string function="", string comment="")
Main constructor.
Definition: Errors.cxx:398
Seldon::WrongIndex
Definition: Errors.hxx:114
Seldon::WrongIndex::~WrongIndex
virtual ~WrongIndex()
Destructor (present to avoid duplicate symbols in .o files)
Definition: Errors.cxx:288
Seldon::Error::CoutWhat
void CoutWhat()
Delivers information about the error.
Definition: Errors.cxx:106
Seldon::Error::~Error
virtual ~Error()
Destructor.
Definition: Errors.cxx:76
Seldon::WrongRow::WrongRow
WrongRow(string function="", string comment="")
Main constructor.
Definition: Errors.cxx:303
Seldon::Error
Definition: Errors.hxx:38
Seldon::WrongRow::~WrongRow
virtual ~WrongRow()
Destructor (present to avoid duplicate symbols in .o files)
Definition: Errors.cxx:314
Seldon::WrongIndex::WrongIndex
WrongIndex(string function="", string comment="")
Main constructor.
Definition: Errors.cxx:277
Seldon::Error::description_
string description_
Message describing the exception type.
Definition: Errors.hxx:42
Seldon::WrongArgument::What
virtual string What()
Delivers information about the error.
Definition: Errors.cxx:203
Seldon::LapackError::LapackError
LapackError(int info, string function, string comment)
Main constructor.
Definition: Errors.cxx:756
Seldon::NoMemory::~NoMemory
virtual ~NoMemory()
Destructor (present to avoid duplicate symbols in .o files)
Definition: Errors.cxx:236
Seldon::NoMemory::NoMemory
NoMemory(string function="", string comment="")
Main constructor.
Definition: Errors.cxx:225
Seldon::WrongCol::~WrongCol
virtual ~WrongCol()
Destructor (present to avoid duplicate symbols in .o files)
Definition: Errors.cxx:340
Seldon::Error::What
virtual string What()
Delivers information about the error.
Definition: Errors.cxx:90
Seldon::Error::function_
string function_
Name of the function in which the error occurred.
Definition: Errors.hxx:44
Seldon::Error::Error
Error(string function="", string comment="")
Main constructor.
Definition: Errors.cxx:43
Seldon::LapackError::~LapackError
virtual ~LapackError()
Destructor (present to avoid duplicate symbols in .o files)
Definition: Errors.cxx:767
Seldon::IOError::IOError
IOError(string function="", string comment="")
Main constructor.
Definition: Errors.cxx:355
Seldon::SolverMaximumIterationError::SolverMaximumIterationError
SolverMaximumIterationError(string function="", string comment="")
Main constructor.
Definition: Errors.cxx:381
Seldon::LapackError::What
virtual string What()
Delivers information about the error.
Definition: Errors.cxx:776
Seldon
Seldon namespace.
Definition: Array.cxx:24
Seldon::WrongArgument::~WrongArgument
virtual ~WrongArgument()
Destructor (present to avoid duplicate symbols in .o files)
Definition: Errors.cxx:194
Seldon::WrongDim::~WrongDim
virtual ~WrongDim()
Destructor (present to avoid duplicate symbols in .o files)
Definition: Errors.cxx:262
Seldon::WrongDim::WrongDim
WrongDim(string function="", string comment="")
Main constructor.
Definition: Errors.cxx:251
Seldon::WrongArgument::WrongArgument
WrongArgument(string function="", string comment="")
Main constructor.
Definition: Errors.cxx:183