File: ChangeLog

package info (click to toggle)
odin 2.0.5-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,196 kB
  • sloc: cpp: 62,638; sh: 4,541; makefile: 779
file content (1352 lines) | stat: -rw-r--r-- 37,667 bytes parent folder | download | duplicates (3)
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
ChangeLog for ODIN


Version 2.0.5:
--------------

New Features:
- miview now with enhanced mode to mark ROIs (use command-line option '-rois' to activate):
  - multiple ROIs per slice
  - ROIs as colored overlay
- Default values printed in usage information (if applicable)
- New mask-generating filter 'nonzeromask'
- miconv/micalc/miview: Logging application of filters to cmdline

Internal Changes:
- Improved configure script: Headers will be searched in specific subdirectories  of
  /usr/include and the argument to '--with-extra-include-base'
- Improved speed of morphological filters 'erode' and 'dilate'



Version 2.0.4:
--------------

New Features:
- center-of-gravity calculation in micalc
- option '-framesplit' in FileIO to force splitting frames with different acquisition
  times into separate protocol-data pairs during read
- Morphological filter 'erode' and 'dilate'
- sqrt operation in micalc
- using two-component fit to histogram for better 'automask' filter

Internal Changes:
- Porting to Debian Buster
- Fixed issues with VTK-based magnetization plotter
- Increased efficiency of cluster algorithm


Version 2.0.3:
--------------

New Features:
- Added FilterSphereMask to create spherical ROI

Internal Changes:
- fixes for GCC6



Version 2.0.2:
--------------

New Features:
- Added 'Export->Save Data as ...' menu entry to MiView
- XML-based image format
- XML based protocol format with suffix 'xpro'
- Added read/write of ISMRMRD image data format

Internal Changes:
- renamed fileio_jdx to fileio_ser to deal with both XML- and JCAMP-DX-based image format



Version 2.0.1:
--------------

New Features:
- Support for several image file formats for '-dump' option of miview

Internal Changes:
- Porting to GSL-2
- Support for multiarch-based Qt on Debian during configure


Version 2.0.0:
--------------

API Changes:
- Using LDR (labeled data record) as parameter prefix instead of JDX, e.g. JDXint becomes LDRint
- SeqGradEcho: Partial Fourier in 2nd phase-encoding direction as parameter
- Separate functor 'halffour' in odinreco to deal with half-Fourier acquisition

New Features:
- Added PatientsSize as study parameter
- Added FilterInvert to invert gray scale
- Added ReceiveCoilName as system parameter
- Added freedesktop entries for Odin, Pulsar, MiView
- Implemented partial Fourier in multiple dimensions
- Added reader for ISMRMRD raw data format

Internal Changes:
- Porting to VTK-5.8/VTK-6
- New Allura-based SVN repo at SourceForge


Version 1.8.8:
--------------

New Features:
- Added FilterCluster (-cluster) for clustering of adjacent non-zero voxels
- Added FilterEdit (-edit) to edit single voxel values or range of values
- Added FilterTimeShift
- Storing PatientAge in DICOMs
- miview: Option to export/dump image legend separately to file
- micalc: Added option -histslotmap

Internal Changes:
- Added eventContext::abort to stop a running sequence during execution


Version 1.8.7:
--------------

New Features:
- Implemented on-the-fly drift correction in odinreco

Internal Changes:
- Fixed serious bug in SeqPulsar/SeqPulsarReph which affected
  all sequences based on SeqGradEcho (e.g. odingrech, odinfisp)


Version 1.8.6:
--------------

New Features:
- Added DownhillSimplex-based function fit 'FunctionFitDownhillSimplex'
- New FileIO module for simple Interfile format
- Implemented VtkFormat::read()
- Added new filter 'convolve' for spatial convolution with different kernels
- New filter 'slicetime' to correct for different slice acquisition times

API Changes:
- Added interface class 'FunctionFitInterface' and renamed
  'FunctionFit' to 'FunctionFitDerivative'
- Removed ModelFunction::fit()

Internal Changes:
- Adapted for blitz-0.10
- Ported to qwt6
- Using filter_slicetime in odinreco/slicetime
- Cleaned up interface of filter: only single header filter.h necessary
  to include FilterChain
- Using RescaleSlope/Intercept when writing DICOMs
- Simplified autoscaling: Removed 'noupscale' option, only Boolean
  as argument to converter functions, new command-line option
  FileWriteOpts::noscale to be used by file writers


Version 1.8.5:
--------------

New Features:
- Writing of multiple VTK files for dynamic data sets
- Storing protocol together with z-maps in miview fMRI
- Added dialect 'tcourse' to ASCII fileio
- SeqSimMonteCarlo now supports multi-threaded simulation
- Added gamma variate fitting function
- Added filter steps 'quantilmask' and 'resample'
- Filter steps 'minip', 'maxip' and 'proj' now with direction argument
- Added option 'weightmask' to micalc
- Added reco step 'qcspike' to detect spikes in signal
- Added reco steps 'driftcalc/driftcorr' for correction of field drift
- Added GSL-based DownhillSimplex optimizer

Internal Changes:
- Added thread-local storage to ThreadedLoop
- Removed usage of liboil
- Removed FileIO of Lipsia/Vista
- Rewrote filter_splice
- Adapted to libpng 1.5.x
- New implementation of unwrap_phase() function with variable startindex


Version 1.8.4:
--------------

New Features:
- Calculating reductions (maximum, minimum and sum projection)
  by one filter step
- Added write option 'fnamepar' to create file names of datasets based
  on arbitrary protocol parameters
- Added parameter to weight phase by exponent of magnitude when
  combining multi-channel data
- Added filter 'automask' to create mask using histogram-based threshold 

Internal Changes:
- Fixes for DCMTK 3.6.0
- Combination of files with different bit representations in autoread
- Using presence of DICOM trigger time to set PhysioTrigger
- Accounting for different TRs in gated mode when combining data


Version 1.8.3:
--------------

New Features:
- PhysioTrigger flag in GUI
- Partial Fourier acquisition in readout direction
- Reordering of phase lists

API Changes:
- Changed constructors of SeqAcqRead and SeqGradEcho to allow for
  partial Fourier acquisition in readout direction.

Internal Changes:
- Now using PREFIX/share/odin to install sequences, samples and coils
- Constructors of SeqGradTrapez and SeqAcqRead now account
  for rastered duration of of constant part
- Taking SeqVecIter objects into account when creating recoInfo



Version 1.8.2:
--------------

New Features:
- Read-only display of parameter blocks by a table
- Support for time varying samples to simulate fMRI, for instance
- (Re-)added SeqMagnReset to reset magnetization in simulation
- New FileIO plugin for ODIN measurement protocols

API Changes:
- Changed parameter order of Sample::resize()
- Removed obsolete B1 map in Sample
- Sample has extra time dimension (frames)

Internal Changes:
- Fixed noise generator of MRI simulator



Version 1.8.1:
--------------

New Features:
- 3D phase encoded PROPELLER sequence
- Support for diffusion tensor imaging
- New parameters for odinreco to fine-tune
  odinreco of PROPELLER data
- Added 3D mode to SeqGradEcho

API Changes:
- New operators /= for SeqGradChanParallel
- Moved set_gradrotmatrixvector() from
  SeqParallel to SeqObjList

Internal Changes:
- Using userdef dimension for messer/gesse sequence
- Separate functor for phase correction of blades


Version 1.8.0:
--------------

New Features:
- odinprop now possible with ramp sampling
- Dialect 'siemens' for DICOM read/write plugins

Internal Changes:
- Removed scanner-specific drivers from public
  distribution.


Version 1.7.3:
--------------

New Features:
- Auto-detecting number of cores for odinreco.
- Added functor 'fmri' to odinreco (fMRI localizer).
- Optimized trapezoidal gradient pulses.
- Added filter 'detrend' to remove slow drift over time.
- Added filter 'merge' to merge datasets into one.
- Added filter 'usemask' to generate 1D array using a mask.
- Multi-threaded simulation of MR signal.

API Changes:
- SeqPulsar::set_rephased() now accepts an optional
  argument to set the rephaser strength.

Internal Changes:
- New template class ThreadedLoop for parallelized loops.


Version 1.7.2:
--------------

New Features:
- New sequence 'odinprop' and appropriate reconstruction for PROPPELLER
  acquisition.

Internal Changes:
- Auto-generating manpages using 'help2man'.
- Added --enable/disable-<feature> to configure for 3rd part libraries.


Version 1.7.1:
--------------

New Features:
- Added residual-based robustness filter to GRAPPA reconstruction.
- New filter 'align' to register the data of one dataset to the
  geometry of another.

Internal Changes:
- Added reverseSlice to Geometry to account for different handness
  of coordinate system.
- Removed sonames of libraries.
- Filters now operate on whole maps of protocol-data pairs.


Version 1.7.0:
--------------

New Features:
- Full support for arbitrary oversampling on all platforms.
- Added ScanDate and ScanTime members to Study.
- New filters for intensity masks (genmask) and slice tiling (tile).
- Added SeqHalt for physiological triggering.

API Changes:
- Parameter for oversampling factor can now be specified
  in SeqAcq* constructors.
- Removed obsolete 'gradshift' from SeqAcqEPI constructor.

Internal Changes:
- Added configure option --enable-debug, release mode is now the default


Version 1.6.9:
--------------

New Features:
- Added common method SeqFreqChanInterface::set_phasespoiling() for RF
  spoiling.
- Added code for iterative GRAPPA interpolation in two phase encoding
  directions.
- New file formats in FileIO: 3db (Iris3D binary data), png (PNG image),
  reg (Ansoft HFSS ASCII).

API Changes:
- Removed obsolete get/set_attenuation() of pulse classes.
- Renamed SeqPulsNdim::get/set_wave() -> SeqPulsNdim::get/set_rfwave()
  and SeqPulsNdim::get/set_Gx/y/z() -> SeqPulsNdim::get/set_gradwave()
- Merged enums read/phase/sliceChannel and read/phase/sliceDirection
  into read/phase/sliceDirection
- New member 'methpars' in Protocol to accomodate custom sequence
  parameters.

Internal Changes:
- The protocol is now embedded in recoInfo instead of a separate
  file on disk.
- Using Siemens Ice(Configurator) to store raw data on disk.


Version 1.6.8:
--------------

New Features:
- Most of the tracing is now displayed directly in the messages
  window of Odin instead of the console.

API Changes:
- Replaced Debug module (in files tjutils/tjdebug*)
  by Log module (in files tjutils/tjlog*)

Internal Changes:
- Replaced most of uses of cout/cerr by using new Log module


Version 1.6.7:
--------------

New Features:
- Ported to Siemens IDEA VB15
- odinreco can reconstruct Twix-exported raw data from some
  Siemens sequences (EPI, FLASH)

Internal Changes:
- New ostringstream-based debugging framework which now supports
  standard ostream output to be redirected to the debug object


Version 1.6.6:
--------------

New Features:
- New class SeqGradPhaseEncFlowComp for 1st order flow-compensated
  phase encoding.
- Implemented 3D mode for SeqFieldMap.
- New framework for filter steps operating on datasets-protocols pairs
  in odindata/filter*.

Internal Changes:
- Added libodinreco in order to support external recos with a custom reader.
- Common template base classes for filter and reco steps in odindata/step.*.


Version 1.6.5:
--------------

New Features:
- Support for GNU-Zip compressed files in FileIO, e.g. files ending with nii.gz
  can be read directly.
- Oscilloscope in sequence plotter.
- New Mode 'B1' in odinquant and functor b1fit to produce B1 maps.
- Added true half fourier reco to odinreco/homodyne.*
- Ported to Siemens Numaris4 VB12

API Changes:
- JDXyesno renamed to JDXbool.

Internal Changes:
- Uniform handling of arguments and options of reco steps (functors) via a
  single set of parameters per step.
- Storing and using ReadoutShape instead of RegridMatrix for ramp-sampling
  correction.
- Using MinGW patch so that ODIN can be used on Windows Vista.
- Using name 'odindebug' as a uniform name for all local Debug objects.
- Renamed SeqMethodInterface/SeqPlatformInterface to SeqMethodProxy/SeqPlatformProxy.
- Extra configure option to include/exclude unit test.
- New simple list-based memory manager for custom heap.


Version 1.6.4:
--------------

New Features:
- Monte-Carlo simulator 'SeqSimMonteCarlo' to simulate diffusional
  averaging. Both simulators, 'SeqSimMagsi' and 'SeqSimMonteCarlo', are
  now accessible via a common interface 'SeqSimAbstract'.
- New sequence 'odinswi' and reco functor 'swi' for susceptibilty weighted imaging.
- New reco functor 'filter' and 'zerofill' for k-space filtering and
  zero filling.
- Input/output plugin for the Matlab ASCII file format in FileIO module.
- Improved Vista input/output plugin which is now compatible with Lipsia.
- Improved NIFTI input/output which now supports different data representation
  types and correctly handles slice orientations.
- New LAPACK-based linear algebra functions 'pseudo_inverse' and 'eigenvalues'
  in odindata/linalg.h.
- More filter plugins for JDXfilter

API Changes:
- Renamed header seqmagn.h to seqsim.h and class 'SeqMagn' to 'SeqSimMagsi'.
- Data::convert_to() has more convenient autoscaleOption instead of scale/offset.
- New parameter RFSpoiling in commonPars

Internal Changes:
- Increased efficiency of the tokenizer and STL replacement.
- Using liboil when available for array conversion.


Version 1.6.3:
--------------

New Features:
- Direct FT with conjugate-phase reconstruction for spiral imaging.
- Yet another optimized spiral trajectory (BoernertSpiral) as described in
  Boernert et al, MAGMA 9:29-41(1999).
- Support for NIFTI file format.

Internal Changes:
- Collected common code of different spirals into base class ArchimedianSpiral.
- Simplified interface to Paravision: A scan can now be started directly
  from the ODIN GUI. Communication between ODIN and Paravision is now
  bases solely on pvcmd.


Version 1.6.2:
--------------

New Features:
- Experimental support for VB* on Siemens.
- Slice ordering of Sinc and Gauss pulses is now interleaved
  by default.
- Added slice-time correction functor to odinreco.

API Changes:
- Now, the class SeqAcqEPI has an extra parameter 'reduction'
  in the constructor to realize GRAPPA encoding directly in the
  the SeqAcqEPI class in order to combine segmentation and parallel
  imaging of EPI.


Version 1.6.1:
--------------

New Features:
- Graphical installer to install ODIN on IDEA.
- Implemented partial Fourier acquisition: New sequence parameter
  'PartialFourier', added support for partial Fourier acquisition in
  SeqGradPhaseEnc/SeqGradEcho and homodyne reconstruction in odinreco.

API Changes:
- Overloading SeqMethod::method_reco() to perform method-specific reconstruction
  is no longer supported. Instead, each method can register a set of functors
  via RecoPars::set_Recipe() and RecoPars::set_PostProc3D().

Internal Changes:
- No longer providing Debian packages because of a bug in Blitz++, see
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=369753 for details.


Version 1.6.0:
--------------

New Features:
- New multi-threaded pipeline-based reconstruction 'odinreco' which replaces
  good old 'autoreco' as the image reconstruction framework within ODIN.
- Added components for multi-threading in tjutils/tjthread.h.
- New class SeqVecIter to iterate manually through vectors (e.g. phaselists).

API Changes:
- Removed Nyquist correction for EPI in favour of simple 1D phase correction.

Internal Changes:
- Renamed library for data processing from 'odinreco' to 'odindata'.


Version 1.5.1:
--------------

New Features:
- The FileIO module and the tools based on it (miconv,miview) now support
  datasets with differing protocols. These protocol-data pairs are now
  processed simultaneously. They are read from and written to a single file
  if the file format supports this option (e.g. Vista).
- Spiral trajectories with a free parameter can be optimized for minimum
  readout length using downhill simplex optimization.
- Various improvements to spiral reco: Faster k-space gridding, magnitude
  correction, optional reco by matrix inversion, ...

API Changes:
- Added ramp steepness as parameter to SeqGradTrapez and SeqAcqEPI.
- Restructured FileIO functionality: Instea of separate 'read/write_*_file'
  functions for each file format, the class Data now has single functions
  'autoread/autowrite' to import/export data from different file formats.
- The FileIO module now handles lists of protocol-data pairs: Data
  with differing protocols can be read in and written out simultaneously.
- New gridding and coodinate transform functors 'Gridding' and
  'CoordTransformation' which are nitialized once and can be applied
  multiple times.

Internal Changes:
- Using fast(!) LAPACK routines for SVD instead of those of GSL
  if LAPACK is available.


Version 1.5.0:
--------------

New Features:
- Added new sequence parameter GradientIntro which will
  automatically generate a 'tok tok tok' sound prior to
  the actual sequence if activated.
- New encodind scheme 'maxDistEncoding' which creates
  max distance between consecutive elements of a vector,
  e.g. for multi-slice excitation with minimum overlap.
- New class 'Study' and sub-object 'study' in class
  'Protocol' to hold info about current study, i.e. patient
  info, study name, etc.
- Fully standard-compliant DICOM export.
- To allow off-center FOV in read direction, oversampling
  will now be used to create a shift in autoreco before
  the FOV-band filter is applied.

Internal Changes:
- Migrated to subversion source code control
- Renamed internal interface classes of sequence objects
  from <SomeSeqClass>Abstract to <SomeSeqClass>Interface
- All Seq*Interface now implement automatic marshalling
  of virtual functions if a marshall is specified with
  set_marshall().
- Restructured type interface for amd64 bit compatability:
  Possible integer types are now s8bit, u8bit, s16bit, u16bit,
  s32bit, u32bit and will be mapped to the appropriate C types
  during './configure'.


Version 1.4.3:
--------------

API Changes:
- Argument for direction of ComplexData::fft(...) changed to bool value
- The function do_autoreco() is obsolete, autoreco is always performed
  prior to calling sequence-specific method_reco().

New Features:
- Added SeqPulsar::get_reph_gradintegral() to obtain rephasing integrals
  without creating a new gradient object.
- Ported ODIN to Windows using MinGW.

Internal Changes:
- Using GSL FFT instead of FFTW -> No more FFTW dependency


Version 1.4.2:
--------------

API Changes:
- Removed obsolete flag 'templateScan' from constructor of SeqAcqEPI

New Features:
- Added optimization code for RF pulses
- New constructor flag 'rephase' for SeqAcqDeph to create post-acquisition
  rephasing gradients.

Internal Changes:
- Many bug fixes



Version 1.4.1:
--------------

API Changes:
- Memory mapping of complex raw data has changed: The block
  can be reshaped at each load_block.


New Features:
- The EPI module now supports multiple echoes for each line
  in k-space. This is useful for field-map scans.
- Added EPI-based module for field-map pre-scan to odinspir
  sequence.


Internal Changes:
- Better integration into the Paravision PVM framework.
- Tagging of dimensions for reco is now performed mainly
  in autoreco for better performance.



Version 1.4.0:
--------------

New Features:
- Added support for multi-shot (segmented) EPI.
- Parallel imaging using GRAPPA. A new parameter
  'ReductionFactor' can be used to specify an acceleration
  factor and the class 'SeqGradPhaseEnc' is able to
  create undersampled phase encoding with auto-calibration
  lines.
- Embedded 1D plots (e.g. in Pulsar) can be detached
  by an entry in their context menu.
 
API Changes:
- The sub-elements of the Protocol class (system, geometry and seqpars)
  are no longer pointers, but actual objects.
- All 'set_*_vector' member functions of SeqAcqAbstract derived
  classes are now replaced by a single function 'set_reco_vector'
  which takes the desired dimension as its first argument via a
  'recoDim' parameter.
- The simple macro ODINMETHOD_ENTRY_POINT is now used in every sequence
  file/module instead of the old ODINMAIN function code.
- Changed constructor of SeqAcqEPI to support multi-shot (segmented) EPI
- Changed constructor of 2D SeqGradEcho: More convenient constructor
  with matrix sizes and FOVs instead of gradient strengths.
- Changed constructor of 'SeqGradPhaseEnc' to support parallel
  imaging.
- Removed property digitizerMode from the API, i.e. from all
  constructors of SeqAcq* objects.

Internal Changes:
- Removed tjview
- Using PVM instead of IMND interface on Paravision/Bruker.
- Various changes to use optimum filter/digitizer settings
  on Paravision/Bruker.



Version 1.3.2:
--------------

New Features:
- Added scale to all 2D plots

Internal Changes:
- Unit test of components is now handled by UnitTest and
  derived classes
- Fixed broken Debian package.



Version 1.3.1:
--------------

API Changes:
- Argument to get/set_spatial_offset of OdinPulse/SeqPulsarPinWheel
  is now channelNo enum instead of axis enum.
- Moved image.h/image.cpp from odinreco to odinpara lib.
- Renamed SeqRotMatrix to RotMatrix
- The argument to set_gradrotmatrix() is now RotMatrix, instead
  of a 3x3 float array
- Renamed set_mode/get_mode of JDX classes to 
  set_compat_mode/get_compat_mode
- The default compatability mode of parameters is now
  'notBroken' instead of 'bruker'
- The pre-defined frequency list 'pl90' is obsolete,
  use 'set_phase(90.0)' instead.

New Features:
- Multiple test cases are now supported for each sequence
  to cover more use cases during sequence test.
- ODIN image file format now contains additional information
  about the slice geometry.
- Added new program 'miview' which will eventually replace
  the good old, but messy 'tjview'
- It is now possible to display images as color map
  in tjview/miview via the '-color' command-line option.
- Any ImageSet (image.jdx) can be used as a background in geoedit

Internal Changes:
- Ported to Qt4 and Qwt5
- Ported to MacOS
- The class name of a sequences/methods is  now set
  by the define METHOD_CLASS in the method code to change
  the class name dynamically, which is required on MacOS.
- Improved DICOM im/export
- Navigator data set is now stored in ImageSet instead
  of obsolete PilotScan
- The global parameter 'EchoTime' is now a vector of doubles
  internally to support multi-echo sequences. However, in
  the UI it still appears as a scalar parameter.
- The sum immages of autoreco are now produced by
  averaging complex images instead of image magnitudes
  for better noise compensation.




Version 1.3.0:
--------------

API Changes:
- Location and name of headers have changed:
  tjutils/tjdx*.h   ->  odinpara/jdx*
  tjutils/tjreco.h  ->  odinpara/reco.h
  odinseq/seqgeo.h  ->  odinpara/geometry.h
  odinseq/seqsys.h  ->  odinpara/system.h
  odinseq/seqpars.h ->  odinpara/seqpars.h
- Renamed classes:
  SeqGeo  -> Geometry
  SeqSys  -> System
  SeqReco -> RecoPars
- Splitted SeqMagn into two separate classes
  Sample (in odinpara/sample.h) and
  SeqMagn (in odinseq/seqmagn.h) to separate
  the logic of sample properties and magnetization
- Changed member functions of PilotScan: Now
  only one function with an enum 'sliceOrientation'
  as first argument instead of 3 functions
- Constructor and redim functions of tjarray
  changed: Giving a dim parameter as first arg
  is no longer necessary, dim is determined from
  the number of args


New Features:
- A debugger can be attached to the running or newly started
  Odin process in order to debug sequences. It can be switched
  on/off under Preferences->Settings->AttachDebugger
- DICOM support added via dcmtk: reading/writing of DICOM
  files is now possible within the Data class
- new input/output functions autoread/autowrite in odinreco/fileio.h
  which detect the file format automatically according to the
  file extension
- rawcalc/micalc now handles a variety of file formats
- tjview is now capable of displaying DICOM files
- Added new class Protocol which is used to hold the
  whole protocol of one experiment
- Introduced new cmdline program 'miconv' which
  replaces the functionality of raw2vista, raw2vtk,
  vistasplit, etc. The file types are recognized
  according to file extension
- Simulation of MR sequences can now be done via
  cmdline-action 'simulate'
- Started work on drivers for GE (code generator
  for EPIC), drivers will be compiled in by default
- Added write support for MetaImage (mhd) file format
  to FileIO::autowrite

Internal Changes:
- New library odinpara which holds JCAMP-DX implementation
  and parameter classes for the MR protocol (geometry, system,
  sequence parameters)
- Added support for new version (3.x) of FFTW
- Removed obsolete intermediate class SeqClassSys

Misc:
- Windows version of tjview no longer available
- The parameters in ODIN user interface are now
  separated: commonPars and methodPars both have
  their own widget
- The sequence-label prefix is removed from parameter
  names in commonPars when written to disk
  (e.g. odinepi_FlipAngle is now simply FlipAngle)
- renamed command-line utilities:
  genphantom -> gensample
  rawcalc    -> micalc



Version 1.2.2:
--------------

New Features:
- rawcalc/micalc: It is now possible to use numbers instead of
  arrays to perform arithmetics with scalar numbers and arrays
- Added RandomDist, a class to calculate random number
  distributions.
- New header 'odinreco/linalg.h' and function 'solve_linear'
  to solve sets of linear equations using the singular value
  decomposition of GSL
- New function polynomial_fit in header 'odinreco/fitting.h'
  to fit polynomes at each point of an array
- New function transform in header 'odinreco/gridding.h'
  to perform coordinate transformation of Arrays
  (i.e. rotation, flipping, scaling, shifting)
- Made sequence plotting more convenient: Empty channels
  are discarded and signal curves are displayed right after
  simulation
- It is now possible to specify coil sensitivities for
  transmission and acquisition


Internal Changes:
- Now ComplexData::fft swaps quadrants before and after fftw
  (to obtain smooth phasemaps in the image)
- Automated test of autoreco
- Added unit tests for components in odinreco (gridding, fitting,
  statistics, fft)



Version 1.2.1:
--------------

New Features:
- Improved simulation of intra-voxel dephasing by using
  intra-voxel magnetization gradients
- Added vtk-support (writing 3D files)
- New cmdline util raw2vtk to convert raw data to vtk files
- Added TrueFISP sequence odinfisp
- Improved plotting/printing of sequences: Thicker lines
  while printing, wheels for y-axes to select y-range
- Added indication of x/y position when drawing profiles
  in tjview
- The home page now contains a list of avaiable sequences
  together with their descritions. This list is automatically
  generated from the source code files in the sequences dir.

Internal Changes:
- Fixed resizing/margins of JDX widgets on newer Qt versions 
- Automated release and test procedure (make release / make test)




Version 1.2.0:
--------------

API Changes:
- replaced value 'paravision1_1' of enum 'odinPlatform' by
  'paravision' to indicate support of (hopefully) all
  Paravision versions.

New Features:
- Adapted ODIN to Paravision 3
- It is now possible to iterate through a list of flip angles
  via the set_flipangles() and get_flipangle_vector()
  functions of SeqPulsAbstract (and its derived classes)
- Added horizontal/vertical-only zoom tool to sequence plot
- Increased max number of pulses on Paravision from 16 to 32
- Printing of sequence plot is now black on white
- Added Settings to sequence plot to select whether
  axes, grid, markers should be plotted

Internal Changes:
- Removed Qwt source code -> Qwt widget library has to
  be installed separately.
- Debian Sarge is now the reference platform on Linux.




Version 1.1.0:
--------------

API Changes:
- rewrote fitting framework in odinreco: Better usability
  with custom model functions via virtual functions instead
  of template classes

New Features:
- New class Image to handle image data. Data is stored
  on disk in compressed JCAMP-DX format. It is produced
  by 'autoreco' or by 'raw2image' and can be viewed with
  'tjview'.
- All parameters which are relevant for the measurement
  (systemInfo, geometryInfo, sequencePars) are now stored
  together with the raw data in a single file 'protocol'.
  The old files systemInfo, geometryInfo, and sequencePars
  are still available.
- Added integration.* in odinreco for easy integration of
  functions using the GSL
- New files utils.* in odinreco to hold spezialized utility
  functions for reconstruction

Internal Changes:
- Moved platform-specific processing of cmdline options
  to platform drivers
- New class OdinProcess to encapsulate platform-specific
  process creation/execution
- Singletons are now managed by SingletonHandler template
  class to solve problems with DLLs on windows
- New class OdinConf to hold/manage platform-specific
  configuration options



Version 1.0.0:
--------------

- small bug fixes

- Fixed geometry handling on IDEA

- improved geoedit GUI

- added Store/Load-Buttons to store ODIN protocols on Paravision

- added -s to rels action on Paravision to set parameters via
  the command line



Version 0.9.9:
--------------

- cleaned up Paravision interface of ODIN

- adaption of ODIN to NUMARIS VA25

- fixed calculation of composite pulses

- added calculation of eddy currents to plotting module

- added SeqSnapshot sequence object to dump magnetization
  at a specified point in time during simulation




Version 0.9.8:
--------------

- bug fixes

- moved saturation pulse into separate files seqsat.*

- new virtual samples for quality phantom

- different modes for geometry: slicepack and 3Dvoxel

- new Nyquist correction for EPI scans




Version 0.9.7:
--------------

- bug fixes




Version 0.9.6:
--------------

- Refectored magnetization class SeqSimMagn and its simulation.

- Implemented new sequence plotting/simulation framework in
  the ODIN GUI.

- Removed obsolete SeqDigitised class and audiofile generation
  which were formerly used to display sequences.


Version 0.9.5:
--------------

- Modified tjview so that it can be compiled for Windows

- New plotting facility to visualize sequences using a new StandAlone
  platform and the QwtPlot class

- Every platform has now its own systemInfo struct, but the interface
  does not change: systemInfo-> will be relayed to the particular
  systemInfo of the current platform.

- Refactored reorder vector: SeqVector now contains a pointer to
  its reordering vector so that every vector class can now be
  reordered.
  
Version 0.9.4:
--------------

- Cleaned up stream replacement and debugging facility

- Decreased memory usage of recoInfo structure

- Support for multi-channel acquisition (phased-array coils) added

- Cleaned up JCAMP-DX implementation

- Replaced tjstring by STD_string, which is simply a macro for std::string
  on platforms with a working STL

- Replaced tjcomplex by STD_complex, which is simply a macro for std::complex<float>
  on platforms with a working STL


Version 0.9.3:
--------------

- Moved C-standard-header includes into a single new file tjcstd.h

- Fixed performance problem when dealing with recoInfo of many-repetition scans




Version 0.9.2:
--------------

- Added recoInfo data structure to store reconstruction parameters

- Added autoreco executable to perform an automatic reconstruction based on recoInfo

- Improved STL-replacement: now true doubly linked list, list::sort() and list::unique() implemented

- Fully implemented hardware drivers (SeqGradTrapez and SeqGradChanParallel)



Version 0.9.1:
--------------

- Implemented hardware drivers by pure virtual driver base
  classes and their derivations for each platform

- Removed obsolete class SeqGradObjList and SeqGradObjLoop

Version 0.9.0:
--------------

- Added User Manual for ODIN user interface

- Now using Qwt for plotting 1D-graphs

- Improved handling of different nuclei, fixed decoupling class

- Added interpolation function to Data class



Version 0.8.4:
--------------

- Improved ODIN user interface

- Even more bug fixes

Version 0.8.3:
--------------

- Bug fixes!


Version 0.8.2:
--------------

- Improved release generation


Version 0.8.1:
--------------

- Bug fixes

- Improved fMRI analysis in tjview



Version 0.8.0:
--------------

- Restructured source code tree

- compilation for IDEA now uses autoconf/automake

- new library odinreco instead of recopp_blitz


Version 0.7.1:
--------------

- improved ODIN GUI: k-space display, etc.

- rewrote framework for JDXfunctions for minimal memory usage

- accelerated performance in the Siemens enviroment

- SeqRotMatrixVector now coupled to SeqParallel to be used with IDEA

- Started spiral sequence



Version 0.7.0:
--------------

- ODIN now contains a nice GUI for interactive sequence design

- complete rewrite of audio file generation


Version 0.6.2:
--------------

- Better integration of ODIN into Siemens GUI (TE/TR feedback)

- Now using release compilation on Siemens host/mpcu to decrease library size

- Added fMRI analysis to tjview



Version 0.6.1:
--------------

- Added custom memory manager for real time OS to avoid memory leaks

- Finished implementation of rotation matrix vector

- Reworked EPI implementation: different drivers for different platforms

- EPI reco now in separate function



Version 0.6.0:
--------------

- Improved automatic reconstruction via ICE

- Reworked implementation of reordering schemes for Bruker

- Fixed serious bug in frequency list generation



Version 0.5.3:
--------------

- Reordering schemes introduced

- Added code to ODIN that allows automatic reconstruction via the ICE framework

- bug fixes



Version 0.5.2:
--------------

- Improved method interface

- bug fixes



Version 0.5.1:
--------------

- New root classes SeqIdea and SeqParavision added that deal with the different scanner hardware

- bug fixes

- Partial fourier added to EPI module

- Program 'genmakefile' added that creates Makefiles for the methods on different platforms

- ICE program added that writes raw data to disk


Version 0.5.0:
--------------

- ODIN works together with IDEA!

- bug fixes

- global object 'commonPars' added that contains parameters found in nearly every sequence (TE,TR,..)






Version 0.4.9:
--------------

- ODIN now compiles with GCC3.2

- Various bug fixes


Version 0.4.8:
--------------

- Improved Pulsar


Version 0.4.6:
--------------

- Added ramp sampling for EPI


Version 0.4.4:
--------------

- Bug fixes for previous version


Version 0.4.3:
--------------

- Improved manual

- Added more stuff for IDEA support



Version 0.4.2:
--------------

- subsystem for gradient channel handling replaced: gradient
  channel objects can now be played out asynchroniously

- Improved EPI reco

- Predefined fat saturation pulse added



Version 0.4.1:
--------------

- Support for import/export of Vista files added.

- Frequency and delay lists for Bruker are now calculated
  by iterating through the sequence and retrieving their values.

- Gradient waveforms and gradient vectors (phase encoding) are
  now copied to the PARX parameter space via a predefined list
  of float arrays to minimise IMND compilation.

- Predefined sinc and Gauss pulse added.



Version 0.4.0:
--------------

- Support for IDEA added. ODIN now compiles with VC++ and the VxWorks
  cross-compiler.

- Added a rough but working STL replacement for platforms where STL is
  broken (VxWorks).

- ODIN Homepage improved: Download section now contains binaries for
  different platforms.

- IDE for this release was KDevelop 2.1


Version 0.3.3:
--------------

- Various bug fixes

- Documentation updated

- Composite pulses added to OdinPulse/Pulsar


Version 0.3.2:
--------------

- Simulation of sequences is now possible by using the 'simulate' option
  on the command line

- Sequences can now be stored as 6 channel AIFF files by using the 'audio'
  command line switch

- The command line switches 'events' and 'tree' for sequences print the
  events along the time axis or the hierachical sequence tree.

- Added variable delay vector SeqDelayVector

- renamed method tj_read_d to odingrech  (basic gradient echo sequence)



Version 0.3.1:
--------------

- New debugging framework. Functions are debugged by generating a local
  Debug object. Additional messages can be emitted by a stream-like syntax.

- The sequence library is distributed over a whole bunch of new files

- The static members systemInfo and geometryInfo are now pointers due to
  problems in initialising the libraries when they are loaded

- Added new program JdxEdit, an interactive editor for JCAMP-DX files


Version 0.3.0:
--------------

- Advanced pulses are now managed by a new class OdinPulse which allows adding new
  pulse shape, trajectory and filter functions via a plug-in style mechanism.

- The Pulsar user interface has been completely rewritten to make use of the OdinPulse class
  and of new mechanism of automatically building a widget from a given JCAMP-DX parameter set.

- Simulation of a sequence is now handled by two classes: SeqDigitised represents the
  digitised RF and gradient waveforms of the sequence and SeqSimMagn holds the magnetisation
  array. Both are then connected by a simulate function.

- The simulation of relaxation effects (T1,T2) were added by Robert Trampel

- The following methods are now part of ODIN:
  -odinmdeft : MDEFT sequence
  -odinonep : onepulse experiment

- IDE for this release was KDevelop 2.1