24 #ifndef __GyotoDefs_H_
25 #define __GyotoDefs_H_
41 #define sincos(t, s, c) *s=sin(t); *c=cos(t)
44 # define sincos(t, s, c) (undefined)
50 typedef std::vector<double> state_t;
80 #define GYOTO_QUANTITY_NONE 0
83 #define GYOTO_QUANTITY_INTENSITY 1<<0
85 #define GYOTO_QUANTITY_EMISSIONTIME 1<<1
90 #define GYOTO_QUANTITY_MIN_DISTANCE 1<<2
92 #define GYOTO_QUANTITY_FIRST_DMIN 1<<3
94 #define GYOTO_QUANTITY_REDSHIFT 1<<4
99 #define GYOTO_QUANTITY_IMPACTCOORDS 1<<5
101 #define GYOTO_QUANTITY_SPECTRUM 1<<6
103 #define GYOTO_QUANTITY_SPECTRUM_STOKES_Q 1<<7
105 #define GYOTO_QUANTITY_SPECTRUM_STOKES_U 1<<8
107 #define GYOTO_QUANTITY_SPECTRUM_STOKES_V 1<<9
109 #define GYOTO_QUANTITY_BINSPECTRUM 1<<10
111 #define GYOTO_QUANTITY_NBCROSSEQPLANE 1<<11
114 #define GYOTO_QUANTITY_USER1 1<<31
116 #define GYOTO_QUANTITY_USER2 1<<30
118 #define GYOTO_QUANTITY_USER3 1<<29
120 #define GYOTO_QUANTITY_USER4 1<<28
122 #define GYOTO_QUANTITY_USER5 1<<27
124 #define GYOTO_QUANTITY_SPECTRAL (GYOTO_QUANTITY_SPECTRUM | GYOTO_QUANTITY_SPECTRUM_STOKES_Q | GYOTO_QUANTITY_SPECTRUM_STOKES_U | GYOTO_QUANTITY_SPECTRUM_STOKES_V | GYOTO_QUANTITY_BINSPECTRUM)
126 #define GYOTO_QUANTITY_SPECTRUM_STOKES (GYOTO_QUANTITY_SPECTRUM | GYOTO_QUANTITY_SPECTRUM_STOKES_Q | GYOTO_QUANTITY_SPECTRUM_STOKES_U | GYOTO_QUANTITY_SPECTRUM_STOKES_V)
147 #define GYOTO_DEFAULT_DEBUG_MODE 0
155 #define GYOTO_QUIET_VERBOSITY 1
164 #define GYOTO_SEVERE_VERBOSITY 3
173 #define GYOTO_WARNING_VERBOSITY GYOTO_SEVERE_VERBOSITY
182 #define GYOTO_DEFAULT_VERBOSITY 5
191 #define GYOTO_INFO_VERBOSITY 10
201 #define GYOTO_DEBUG_VERBOSITY 3000
213 #define GYOTO_QUIET if (Gyoto::verbose() >= GYOTO_QUIET_VERBOSITY) std::cout
221 #define GYOTO_SEVERE if(Gyoto::verbose()>=GYOTO_SEVERE_VERBOSITY) std::cerr<<"SEVERE: "
229 #define GYOTO_WARNING if(Gyoto::verbose()>=GYOTO_SEVERE_VERBOSITY) std::cerr<<"WARNING: "
240 #define GYOTO_MSG if (Gyoto::verbose() >= GYOTO_DEFAULT_VERBOSITY) std::cout
251 #define GYOTO_INFO if (Gyoto::verbose() >= GYOTO_INFO_VERBOSITY) std::cerr<<"INFO: "
261 #define GYOTO_WARNING_UDUNITS(from, to) \
262 GYOTO_WARNING << "unit ignored (trying to convert from \"" << from \
265 << "\"), you may have more chance recompiling Gyoto with --with-udunits\n"
280 #define GYOTO_DEBUG_EXPR(a) GYOTO_DEBUG << #a << "=" << a << std::endl
294 #define GYOTO_DEBUG_THIS_EXPR(a) GYOTO_DEBUG_THIS << #a << "=" << a << std::endl
313 #define GYOTO_DEBUG_ARRAY(a,n) if (GYOTO_DEBUG_MODE) { \
314 std::cerr << "DEBUG: " << __PRETTY_FUNCTION__ << ": " \
315 << #a << "=[" << a[0] ; \
316 for (size_t _gyoto_debug_array_i=1; _gyoto_debug_array_i < n; ++_gyoto_debug_array_i) \
317 std::cerr << "," << a[_gyoto_debug_array_i] ; \
318 std::cerr << "]" << std::endl ;}
329 #define GYOTO_DEBUG_THIS std::cerr << "DEBUG: " << __PRETTY_FUNCTION__ << ": "
341 #define GYOTO_DEBUG if (GYOTO_DEBUG_MODE) GYOTO_DEBUG_THIS
348 #define GYOTO_IF_DEBUG if (GYOTO_DEBUG_MODE) {
355 #define GYOTO_ENDIF_DEBUG }
358 #define GYOTO_DEBUG_MODE Gyoto::debug()
375 #define GYOTO_COORDKIND_UNSPECIFIED 0
376 #define GYOTO_COORDKIND_CARTESIAN 1
377 #define GYOTO_COORDKIND_SPHERICAL 2
386 #define GYOTO_DEFAULT_X_SIZE 1024
395 #define GYOTO_DEFAULT_DELTA 0.01
400 #define GYOTO_DEFAULT_DELTA_MAX DBL_MAX
405 #define GYOTO_DEFAULT_DELTA_MIN DBL_MIN
415 #define GYOTO_DEFAULT_DELTA_MAX_OVER_R 1.
417 #define GYOTO_DEFAULT_ABSTOL 1e-6
418 #define GYOTO_DEFAULT_RELTOL 1e-6
423 #define GYOTO_DEFAULT_MAXITER 100000
430 #define GYOTO_T_TOL 1e-4
432 #define GYOTO_KERR_HORIZON_SECURITY 0.01
435 #define GYOTO_SCREEN_DMAX DBL_MAX
439 #define GYOTO_PREC 15
441 #define GYOTO_WIDTH 25
445 #ifndef GYOTO_DEFAULT_PLUGINS
446 #define GYOTO_DEFAULT_PLUGINS "stdplug,nofail:lorene"
449 #ifndef GYOTO_PLUGIN_SFX
450 #define GYOTO_PLUGIN_SFX "so"
459 #define GYOTO_C 299792458.
462 #define GYOTO_C_CGS 2.99792458e10
464 #define GYOTO_C2_CGS 8.98755178736817668096e+20
466 #define GYOTO_C2_CGS_M1 1.1126500560536184087938986e-21
468 #define GYOTO_G 6.67428e-11
470 #define GYOTO_G_CGS 6.67428e-8
472 #define GYOTO_G_OVER_C_SQUARE 7.4261380161175445989e-28
474 #define GYOTO_G_OVER_C_SQUARE_CGS 7.4261380161175445989e-29
476 #define GYOTO_PLANCK 6.62606896e-34
478 #define GYOTO_PLANCK_CGS 6.62606896e-27
480 #define GYOTO_PLANCK_OVER_C_SQUARE 7.3724959997591407964e-51
482 #define GYOTO_BOLTZMANN 1.3806504e-23
484 #define GYOTO_BOLTZMANN_CGS 1.3806504e-16
486 #define GYOTO_STEFANBOLTZMANN_CGS 5.670373e-5
488 #define GYOTO_PLANCK_OVER_BOLTZMANN 4.7992373449498869688e-11
490 #define GYOTO_GAS_CST 8.3144621
492 #define GYOTO_GAS_CST_CGS 8.3144621e7
494 #define GYOTO_AVOGADRO 6.0221413e23
496 #define GYOTO_THOMSON_CGS 6.6524e-25
498 #define GYOTO_ALPHA_F 0.00729927
500 #define GYOTO_PROTON_MASS_CGS 1.67262158e-24
502 #define GYOTO_ELECTRON_MASS_CGS 9.10938188e-28
504 #define GYOTO_ELECTRON_CLASSICAL_RADIUS_CGS 2.8179e-13
506 #define GYOTO_ELEMENTARY_CHARGE_CGS 4.80320427e-10
508 #define GYOTO_EULER_MASCHERONI 0.577216
510 #define GYOTO_ATOMIC_MASS_UNIT_CGS 1.660537781e-24
512 #define GYOTO_INU_CGS_TO_SI 0.001
514 #define GYOTO_JNU_CGS_TO_SI (GYOTO_INU_CGS_TO_SI * 100.)
516 #define GYOTO_ANU_CGS_TO_SI 100.
519 #define GYOTO_SUN_MASS 1.98843e30
521 #define GYOTO_SUN_MASS_CGS 1.98843e33
523 #define GYOTO_SUN_RADIUS 6.955e8
525 #define GYOTO_KPC 3.08568025e19
527 #define GYOTO_ASTRONOMICAL_UNIT 1.49597870700e11
529 #define GYOTO_LIGHT_YEAR 9.4607304725808e15
532 #define GYOTO_RADEG 57.2957795130823
534 #define GYOTO_DEGRAD 0.0174532925199433
536 #define GYOTO_MINRAD 2.908882086657216e-04
538 #define GYOTO_SECRAD 4.848136811095360e-06
540 #define GYOTO_MASRAD 4.848136811095360e-09
542 #define GYOTO_MUASRAD 4.848136811095360e-12
545 #define GYOTO_eV2Hz 2.417989348e+14
553 #define obskind_t unsigned int
556 #define GYOTO_OBSKIND_ATINFINITY 0
558 #define GYOTO_OBSKIND_KEPLERIAN 1
560 #define GYOTO_OBSKIND_ZAMO 2
562 #define GYOTO_OBSKIND_VELOCITYSPECIFIED 3
564 #define GYOTO_OBSKIND_FULLYSPECIFIED 4
568 #define GYOTO_STRINGIFY(a) GYOTO_STRINGIFY_ARGUMENT(a)
571 #define GYOTO_STRINGIFY_ARGUMENT(a) #a
573 #ifndef GYOTO_NO_DEPRECATED
574 #warning Using deprecated method names.\
575 Define GYOTO_NO_DEPRECATED to disable.
585 # define getMetric metric
586 # define setMetric metric
587 # define setScreen screen
588 # define getScreen screen
589 # define getRmax rMax
590 # define setRmax rMax
591 # define getMass mass
592 # define setMass mass
593 # define getCoordKind coordKind
594 # define setCoordKind coordKind
595 # define getKind kind
596 # define setKind kind
597 # define getSpin spin
598 # define setSpin spin
599 # define getIntegKind integKind
600 # define setIntegKind integKind
601 # define getFileName fileName
602 # define setFileName fileName
603 # define getDistance distance
604 # define setDistance distance
605 # define getPALN PALN
606 # define setPALN PALN
607 # define getArgument argument
608 # define setArgument argument
609 # define getInclination inclination
610 # define setInclination inclination
611 # define getAstrobj astrobj
612 # define setAstrobj astrobj
613 # define getSpectrometer spectrometer
614 # define setSpectrometer spectrometer
615 # define getSpectrum spectrum
616 # define setSpectrum spectrum
617 # define getOpacity opacity
618 # define setOpacity opacity
619 # define setDelta delta
620 # define getDelta delta
621 # define setDelta delta
622 # define getDelta delta
623 # define setDangle2 dangle2
624 # define getDangle2 dangle2
625 # define setDangle1 dangle1
626 # define getDangle1 dangle1
627 # define setAnglekind anglekind
628 # define getTmin tMin
629 # define setTmin tMin
630 # define getTime time
631 # define setTime time
632 # define getFreqObs freqObs
633 # define setFreqObs freqObs
634 # define getFieldOfView fieldOfView
635 # define setFieldOfView fieldOfView
636 # define getRadius radius
637 # define setRadius radius
638 # define getLargeRadius largeRadius
639 # define setLargeRadius largeRadius
640 # define getSmallRadius smallRadius
641 # define setSmallRadius smallRadius
642 # define getCentralDensity centralDensity
643 # define setCentralDensity centralDensity
644 # define getDmax dMax
645 # define setDmax dMax
646 # define getTemperature temperature
647 # define setTemperature temperature
648 # define getScaling scaling
649 # define setScaling scaling
650 # define getPatternVelocity patternVelocity
651 # define setPatternVelocity patternVelocity
652 # define getLambda lambda
653 # define setLambda lambda
654 # define getCentralTempOverVirial centralTempOverVirial
655 # define setCentralTempOverVirial centralTempOverVirial
656 # define getBeta beta
657 # define setBeta beta
658 # define getConstant constant
659 # define setConstant constant
660 # define getExponent exponent
661 # define setExponent exponent
662 # define getFlag_radtransf opticallyThin
663 # define setFlag_radtransf opticallyThin
664 # define getNThreads nThreads
665 # define setNThreads nThreads
666 # define getResolution resolution
667 # define setResolution resolution
668 # define getNSamples nSamples
669 # define setNSamples nSamples
670 # define getSpectralOverSampling spectralOversampling
671 # define setSpectralOverSampling spectralOversampling
672 # define setBinSpectrumConverter binSpectrumConverter
673 # define setSpectrumConverter spectrumConverter
674 # define setIntensityConverter intensityConverter
675 # define getSafetyValue safetyValue;
676 # define setSafetyValue safetyValue;
677 # define setInnerRadius innerRadius;
678 # define getInnerRadius innerRadius;
679 # define setOuterRadius outerRadius;
680 # define getOuterRadius outerRadius;
681 # define setThickness thickness;
682 # define getThickness thickness;
685 # define setBand band;
686 # define setObserverKind observerKind;
687 # define getObserverKind observerKind;
Compile-time configuration.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:44
unsigned int Quantity_t
Type for observabke quantities.
Definition: GyotoDefs.h:76
unsigned int CoordKind_t
Type for coordinate system kinds.
Definition: GyotoDefs.h:374
unsigned int Verbosity_t
Type for verbosity levels.
Definition: GyotoDefs.h:144