-
Notifications
You must be signed in to change notification settings - Fork 2
/
ChangeLog
2991 lines (1644 loc) · 71.4 KB
/
ChangeLog
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
30 Aug 2022:
- Fixed RegisterAbbr issue on abbreviations of the form DiracChain[.]*Eps[.].
- Added way to implement crossing (beta).
15 Jul 2022:
- Worked around yet another Mathematica segfault due to RCSub = Simplify.
29 Mar 2022:
- Indices in IndexSums etc. now get renumbered with similar index names
(no Ind1, Ind2, ...).
5 Jan 2022:
- DiagramType now takes powers of denominators properly into account.
29 Nov 2021:
- Added ReadFormWrap for better debugging of Mathematica-FORM handshake.
7 Jun 2021:
- Added VectorMoms option to CalcFeynAmp to return loop integrals
with vectors instead of invariants as arguments.
18 Oct 2019:
- Moved nf into SM common blocks.
- Minor cosmetic changes.
7 Oct 2019:
- Automated generation of model initialization code, now takes care of
FeynRules' .pars files.
- Warning: FormCalc does not, of course, guarantee that the numerical
parameters transmitted by FeynRules are compatible with the chosen
renormalization scheme.
2 Sep 2019:
- Fixed gfortran hiccup with integer*8 in *MomDecode.F.
- Upgraded to latest FORM version.
10 Jun 2019:
- Fixed issue with IndexSum on fermion chains.
12 Apr 2019:
- Computation of generic fermion amplitudes fixed (unresolved SpinorType).
- Improved partial fractioning of loop denominators in FORM.
- Removed spurious IGram instances for PaVeReduce -> LoopTools.
- Added $Dminus4MaxPower (= 1 for one-loop).
10 Apr 2019:
- Fixed a few bugs introduced in the last release, most notably one
in the F90 rework of ODESolve.F.
4 Apr 2019:
- Added better simplification of (numerical) roots, e.g. Sqrt[2],
in FORM.
29 Mar 2019:
- Overhauled large parts of the drivers, put Fortran vector syntax
in many places.
- Split xsection.F's TotalXS into IterateXS and (new) TotalXS, the latter
just for the computation of the XS without looping over phase space.
- Added latest FORM executables.
8 Mar 2019:
- Moved partial fractioning of loop denominators...
loop[a___, Den[p_, m1_], b___, Den[p_, m2_], c___] :=
loop[a, Den[p, m1] - Den[p, m2], b, c]/(m1 - m2) /;
m1 =!= m2
... to CalcFeynAmp.frm since m1 =!= m2 cannot reliably be evaluated
before IndexSimplify.
18 Feb 2019:
- Introduced $KeepAbbr = False to not save the Subexpr/Abbr in Keep.
Take care: expressions saved this way cannot not in general be fully
reconstructed later.
29 Jan 2019:
- More quirks in the Generic name mangling removed.
28 Jan 2019:
- Fixed name issue with Generic object 'MetricTensor'.
- Improved persistent names for Generic objects.
21 Jan 2019:
- Fixed bug in CalcFeynAmp for explicit Dirac indices.
- Version number now available as
$FormCalc = {major, minor},
$FormCalcVersionNumber = major.minor
$FormCalcVersion = "FormCalc major.minor (rev date)"
29 Dec 2018:
- Fixed issue with Mass[..., Loop] in Generic diagram simplification.
24 Dec 2018:
- Fixed compatibility issue with Mathematica version 9 and below.
4 Dec 2018:
- Introduced persistent names for Generic objects (couplings, masses etc.).
18 Sep 2018:
- ColourSimplify now observes SumOver for Colour and Gluon indices.
This is needed for 'hand' calculations only since amplitudes from
CalcFeynAmp never have explicit Colour/Gluon SumOvers.
3 Sep 2018:
- Fixed trivial error (duplicate variable in Block) in PolarizationSum.
17 Aug 2018:
- Type of dup variables in FF modules dynamically determined
(no longer always HelType, wrong if HelicityME used).
- More settings for Type, TmpType, IndexType options.
4 Aug 2018:
- Fixed wrong detection of Dirac chains in the counting of the
d.o.f. in the helicity loop of WriteSquaredME.
3 Aug 2018:
- Removed substituted vars from CodeExpr in Subst[Simple]Abbr.
2 Aug 2018:
- Improved Subst[Simple]Abbr: now also looks inside IndexIf.
30 Jul 2018:
- Fixed indexing problem in OptimizeAbbr.
27 Jul 2018:
- Added VarSort and Prio for better control of sort order of lists
of definitions (var -> val).
23 Jul 2018:
- Fixed bug in WeylME.
19 Jul 2018:
- (Again) disabled SIMD detection for gfortran.
16 Jul 2018:
- Fixed two small issues with library detection in configure.
11 Jul 2018:
- SubstAbbr, SubstSimpleAbbr accept a further optional 'deny' argument.
Variables are substituted only if they do not match 'deny'.
- Added HoldCode[expr] which preserves expr until write-out to
Fortran or C. Similar to HoldForm except that argument is
not held unevaluated.
7 Jul 2018:
- Extended Abbreviate[expr, func] so that func can return True and False
(as before) and also a subexpression of its argument, for which the
abbreviation is then introduced.
- New function FindDeps finds all variables in a list of definitions
whose rhs directly or indirectly depends on a given pattern.
27 Jun 2018:
- Added f @ m notation for {Mass,Field,Width}RC, as in:
MassRC[S[3] @ MA0tree].
16 Apr 2018:
- Fixed `mysterious' problem in simplification code in PolarizationSum.frm
introduced by last release.
- Removed bottleneck behavior in TermCollect.
19 Mar 2018:
- More efficient collecting of terms in PolarizationSum.
15 Mar 2018:
- PrepareExpr now generates `individualized' tmp and dup var names,
e.g. C0tmp1 for an abbreviated C0. Can choose prefixes with
$TmpPrefix and $DupPrefix, too.
7 Mar 2018:
- Added DoDim (like Dim) which collects the index dimensions
gathered from SumOvers during amplitude evaluation.
- Manual assignments to Dim make for correct array decls,
assignments to DoDim also generate loops.
5 Mar 2018:
- Fixed problem with DenyNoExp and SUN objects.
- (Hopefully) improved IndexSimplify for terms containing IndexDeltas.
21 Feb 2018:
- Fixed SquaredME problem with amplitudes containing no Mat.
20 Feb 2018:
- Fixed SquaredME problem with threading of Mat.
12 Feb 2018:
- (Hopefully) fixed the dreaded NumberMalloc problem in FORM.
10 Feb 2018:
- Added missing end-braces in C's $CodeElse, $CodeElseIf.
- Added Declarations option to PrepareExpr.
26 Jan 2018:
- Improvements to several scripts in drivers/tools, especially pnuglot.
- Fixed bug in WriteExpr for debug lines in DoLoops.
5 Jan 2018:
- Added $RCRes (like $RCTop, $RCIns, $RCAmp) for better diagnostics
in [D]SelfEnergy, *RC, RenConst, etc.
- Added SEHook to intercept final calculation of a [D]SelfEnergy and
replacement of K2 by m2.
- Generalized SubstSimpleAbbr to SubstAbbr, of which SubstSimpleAbbr
is now only a special case.
- Added Enum and ClearEnum which allow determination of array bounds
with named constants in the code generation.
- Renamed OptPaint to PaintSE (function corresponding to $PaintSE).
- Added PutSE which saves the four components of the calculation of
a RenConst, {$RCTop, $RCIns, $RCAmp, $RCRes}, in files, with
filename conventions analogous to PaintSE. Variable $PutSE
sets the default path/prefix, analogous to $PaintSE.
- Added ToVars function which introduces variables for all
subexpressions matching a pattern.
- Added MakeTmp option for PrepareExpr, which specifies a function
to introduce user-defined temporary variables, e.g. using ToVars.
- Added DeclIf option for WriteExpr. For DeclIf -> "var" the
output is structured like
#ifndef var
#define var
[declarations]
#else
[code]
#endif
i.e. in a language that requires separation of declarations
and code (like Fortran) the same file can be included once
in the declarations section and once in the code section.
- Added the NoDebug wrapper for statements given to PrepareExpr,
i.e. a statement of the form NoDebug[var -> expr] does not
produce a debug line.
- Added Unabbr[expr, !patt] to not expand abbreviations and
subexpressions inside objects matching patt.
- Fixed the (rather special) case where PolarizationSum is used to
square an amplitude that does not contain matrix elements.
PolarizationSum now retains Mat[...] not substituted by the user
(though a warning is issued if the Mat contain polarization
vectors).
- Improved tools/USfSimplify.m.
13 Jun 17:
- Fixed conjugation problem in SquaredME.
- Updated FeynHiggs interface to 2.13.
13 Apr 17:
- IMPORTANT CHANGE: HelicityME, ColourME, WeylME, SquaredME now take
arguments in the order "Mtree, Mloop". This is now (finally) the
same as with WriteSquaredME but different than before.
- Abbr[] and Subexpr[] now return lists with 'patternized' l.h.s. so
that they can also be used for replacing inside Mathematica.
- New functions Creep, ExprHeads, ExprParts.
- Enhancements to ApplyUnitarity, Keep.
- Internally restructured HelicityME, PolarizedSum.
8 Mar 17:
- Fixed bug in OptimizeAbbr (typo: forgotten comma).
- Restricted substitution <-6,mu,nu> <-7,mu,nu> = 0 to Dirac
chains with exactly two Lorentz indices.
23 Feb 17:
- Fixed another bug from returning Abbr/Subexpr with patterns
in issuing debug statements.
10 Feb 17:
- Rearranged SquaredME (and the FORM code for PolarizationSum)
to reflect the general structure of the squared amplitude,
i.e. the squared amplitude is written in terms of form factors
FF[.] or FFC[.], which are given by substitution rules.
- Improved Keep function, will store just the given expression
if it does not depend on any Abbr[] or Subexpr[], else writes
out AbbrExpr[expr, abbr, subexpr].
- Independent of the SetLanguage choice WriteRenConst now generates
two sets of declarations, for Fortran (.h.F) and C (.h.c) so that
Fortran drivers can conveniently be combined with generated
C code (and vice versa).
24 Jan 17:
- Fixed several bugs in RegisterAbbr and RegisterSubexpr
(introduced when Abbr/Subexpr were returned with patterns).
- Enhanced the Keep function: will store/load expression only
if no Abbr and Subexpr are defined.
- New function ExprHeads returns all non-system symbols and heads.
- New function ExprParts returns all subexpressions of expr
which contain given symbols and functions.
- New options RowIndex, ColumnIndex, ComplementFunction for
ApplyUnitarity.
- New function Creep which applies a function only to
subexpressions containing given patterns.
1 Aug 16:
- Abbr[] and Subexpr[] now return lists with 'patternized' l.h.s.
so that they can also be used for replacing inside Mathematica.
9 Jun 16:
- Fixed non-removal of internal dot[.,.] functions in FORM code.
8 Jun 16:
- Automated detection of unpolarized Dirac fermions in the
Fortran code, i.e. got rid of manually setting
UNPOLARIZED_DIRAC_FERMIONS in process.h altogether.
For this to work the definitions of Hel must be present during
WriteSquaredME, however.
7 Jun 16:
- Corrected averaging factor for fermions computed with the
HelicityME method.
- Added incoming/outgoing information to 'Compose' preprocessor
function in specs.h.
- Fixed empty variable declaration in FORM for Invariants -> False.
4 Jun 16:
- Fixed issue with HelNaN, which was not declared in a non-vectorized
environment.
3 Jun 16:
- Moved FORM procedures common to CalcFeynAmp, HelicityME,
PolarizationSum to Common.frm (with slight adaptations).
- In FormCalc.m accordingly moved code related to momentum
conservation (including MomElim and DotExpand options) from
CalcFeynAmp, HelicityME, PolarizationSum functions to
DeclareProcess.
- Color sums over external particles are now communicated
to CalcFeynAmp.frm. They are still not carried out (so as
not to overcount color when squaring the amplitude) but are
used to remove terms known to cancel when summed over later.
24 May 16:
- FORM + MathLink binaries are now shipped with FormCalc.
This should hopefully put to rest the many MathLink build problems.
17 May 16:
- Individual polarization tensors for each leg (eT1, eT2, ...)
are no longer introduced, rather a function Pol(e, mu, nu) where
e is the identifier also used for a polarization vector. That is,
if 'e' appears alone it is a vector, inside Pol it represents a
tensor (that made handling in FORM a lot easier).
- The default assumption is that the polarization tensor factorizes
into two polarization vectors, i.e. eT_{mu nu} = e_mu e_nu, which
is a specific choice for massless particles, and can be turned off
with Clear[Pol].
- Fixed problem with MomElim -> n, which was so far understood as
a hint to perform dot-product simplification most efficiently
whereas now it actually eliminates external momentum n.
- Fixed problem with RegisterAbbr which didn't correctly classify
all external abbreviations.
- MapOnly function added, to apply (e.g.) simplifications only
to subexpressions containing only particular symbols, for
example SUSY trig relations.
19 Apr 16:
- Fixed bugs in direct CUT_MREM_... cuts.
- Fixed bug in mktm script for interfacing generated code to
Mathematica.
- Updated to latest FORM release.
24 Jan 16:
- Updated detection of Fortran compilers and flags in configure.
22 Jan 16:
- Added PaVeReduce -> LoopTools option which reduces only tensors
higher than those available in LoopTools.
21 Jan 16:
- Improvements in configure for SIMD detection & pgf* compilers.
- Fixed bug in IndexDelta for negative index values.
- Fixed bug in computation of IDENTICALFACTOR for colored particles.
15 Jan 16:
- Improved detection of libraries (in particular LHAPDF) in configure.
- Added compatibility check for libraries.
13 Jan 16:
- Added UnAbbr function to quickly recover an unabbreviated expression.
11 Jan 16:
- Fixed several problems with vectorization in Fortran/C for different
values of SIMD.
- Added debug statements to SquaredME.{F,c}.
- Introduced debug level in WriteSquaredME, i.e. no longer on/off
(#ifdef/#ifndef DEBUG) but graded (#if DEBUG >= 1, 2, 3, 4).
7 Jan 16:
- Added checking statements (DebugLines -> 2 or 3 in PrepareExpr).
Modified (extended) also the $DebugCmd stuff.
- Added global variables $DebugFF, $DebugAbbr[.], $DebugNum, $DebugRC
which specify the DebugLines value in the generation respectively of
the form-factor, abbreviation, numerator, and renconst modules.
- Removed the PARALLEL code from the drivers (util/system/parallel.c).
Not as efficient as the SIMD code, hence rarely used, and requiring
a bunch of workarounds for Fortran, too.
- Fixed bottleneck behavior in vplus/vtimes (conversion of C-bound
expression to vectorized multiplications).
- Updated all examples/*.drivers/run.uuuu.* used for comparison.
24 Dec 15:
- Added computation of effective MU, MD masses, uses DeltaAlfa5Had
as input.
- Added MB_SCHEME flag to choose OS or MSbar b-mass in model_sm.
22 Dec 15:
- Extended QCD routines so that each routine has its own nloop
argument.
16 Dec 15:
- Extended {Find,Calc,Write}RenConst functions for arbitrary
heads, not just RenConst.
11 Dec 15:
- Removed -ff2c flag for gfortran in configure. Must link with
LoopTools 2.13 or adjust -ff2c flags in old versions accordingly.
10 Dec 15:
- Added informative printout of helicities being processed, serves
to check selection of bits in 'helicites' argument.
- Added reset of hseli whenever BIT_RESET is set.
1 Dec 15:
- Added/extended QCD routines. Formerly in AlphaS.F, now split up
and moved to util/qcd directory.
- Added cuts.F which implements various cuts by 'veto' (setting the
cross-section to zero).
- Slimmed down makefiles.
4 Nov 15:
- Added SetLanguage[lang, "novec"] functionality to generate
unvectorized code only.
3 Nov 15:
- Added new function WeylME and CalcFeynAmp option FermionOrder -> Weyl
to use matrix-element method also with Weyl chains.
- Fixed many smallish issues with vectorization, mostly in the C output
(and particularly for clang), mostly when used with HelicityME.
4 Sep 15:
- Added simple way of combining partonic XS, through partonic.h and
parton.h.
17 May 15:
- New format for squaredme/specs.h allows easier handling of lists
(e.g. charges in softphoton.F).
4 May 15:
- Updated examples.
28 Apr 15:
- Improvements to ExpandSums and ApplyUnitarity.
- Fixed bug in Chain[VB]7 functions.
1 Apr 15:
- Fixed internals in FermionRC: postponed evaluation of TheMass
until model is initialized.
31 Mar 15:
- Fixed ToFeynAmp for even simpler expressions.
- Upgraded to latest FORM release.
23 Feb 15:
- Added Chain{V7,B7,V8,B8} to the drivers code.
- Improved tools/USfSimplify.m.
19 Feb 15:
- Introduced functions for DebugLines, e.g. DebugLines -> foo
individually determines the debug output for each assignment by
testing whether foo[var -> expr] returns False, True, or a string.
5 Feb 15:
- Added missing value of NVEC, relevant for Cuba integration.
- Increased default value for FCHSELN from 10 to 30 (more conservative).
26 Jan 15:
- Fixed severe error in code generation introduced in Jan 20 release.
20 Jan 15:
- Fixed spurious 0xa0 non-UTF character in FormCalc.m.
- Added SumLegs option for PolarizationSum to restrict the sum to
a subset of external vector bosons only.
- Fixed compilation issue with the mcc script on Cygwin for
Mathematica versions before 10.
- Fixed treatment of (rare) 'backslashed' linebreaks in FORM code.
27 Nov 14:
- Upgraded to Cuba 4.1.
4 Nov 14:
- Minor fixes in drivers/tools/fcc for Mathematica 10.0.1.
28 Oct 14:
- Made PolarizationSum honor definitions for eta[i].
19 Oct 14:
- Made $ReadFormHandle publicly available, use it to do
Uninstall[$ReadFormHandle] before quitting the Kernel to avoid
(as yet ununderstood) freezes in Mathematica 10.
- Introduced RenConstHook in analogy to InsertFieldsHook and
CreateFeynAmpHook.
10 Oct 14:
- Fixed technical problem with PaVeReduce which would leave
denominators containing q1 in the result.
- Split off model-specific definitions to FormCalc/ModelSpecific.m.
- Disabled loading of model-specific defs if $NoModelSpecific = True.
8 Sep 14:
- Fixed comparison of helicities in SquaredME.F, former code
was correct for unpolarized cross-sections only.
31 Jul 14:
- Unified FV variables in new file model_fv.h, included by
model_mssm.h and model_fh.h.
- Renamed NMFV preprocessor flag to FV, includes LFV now.
FV = 2 means sl, su, sd are initialized, FV = 3 only su, sd,
FV = 4 only sd.
15 Jul 14:
- Various fixes (mostly internal stuff) for Mathematica 10.
10 Jul 14:
- The OffShell function now acts on spinors, too.
8 Jul 14:
- Added OnShell -> ExceptDirac option which avoids using the
Dirac equation on on-shell momenta.
3 Jul 14:
- Repaired initial build of util.a in compile.
26 Jun 14:
- Fixed problem with shortened routine names in makefile.
4 Jun 14:
- Introduced 'silent' (non-integrating) kinematic variables
for output only (Show(v) only relevant field), must have
Step(v) = -999.
2 Jun 14:
- Made build of generated code parallelizable (make -j).
Still uses libraries, but scripts tools/ar and tools/ranlib
trick make into building concurrently.
9 Apr 14:
- Added Ninja interfacing code (beta).
7 Mar 14:
- Corrected conjugation properties in ApplyUnitarity.
- Extended OnePassOrder to properly handle IndexIf constructs.
- Extended Folder option of WriteSquaredME to digest composite
names, such as {"squaredme", ProcName}, where ProcName is
a (Fortran-, C-, and file-system-safe) name generated from
the process name.
- Modified makefile.in to handle subdirectory structure underneath
the squaredme folder, such that several subprocesses will be
compiled automatically.
- Fixed subtle error in RemoveDups (Optimized -> True in
PrepareExpr/WriteExpr), where restricted detection but
unrestricted substitution of subexpressions could lead to
out-of-the-order "dup" variables.
7 Feb 14:
- Moved to different internal representation for subroutines
(Nput & friends). Function is no longer used on the r.h.s.,
this makes things easier in many ways (due to functions having
delayed evaluation).
- Straightened out SIMD_* macros, to make the no-SIMD fallback
version Fortran 77 compliant.
14 Nov 13:
- Added proper initialization with zero of loop result also for
tree-level-only calculations (relevant mostly for gfortran).
- Reverted to statically linked Linux FORM executables for glibc
compatibility. Static linking had caused segfaults in g++'s
exception handling (used in FORM's factorization algorithm).
In the event of a segfault in FORM please replace
Linux{,-x86-64}/tform by the respective shared version
FORM/Linux{,-x86-64}/bin/tform-shared.
- Introduced FCHSELN and FCHSELEPS environment variables to detect
and eliminate negligible helicity combinations.
13 Nov 13:
- Updated FORM executables.
- Added Windows-x86-64 build (on Cygwin64).
- Made detection of helicity combinations with zero result more
conservative.
8 Nov 13:
- NCOMP = 1 now automatically sets BIT_LOOP = 0.
7 Nov 13:
- Fixed glitch in WriteSquaredME for vanishing tree (or loop)
contribution.
6 Nov 13:
- configure now creates simd.h (if different than before) such
that dependencies are properly handled. This affects mostly
util/kin/VecCopy.F.
3 Nov 13:
- Fixed MathLink compilation issue with MacOS 10.9/clang++.
- Enabled vectorization as default using the capabilities of the
CPU the code is configured on. Use ./configure --generic to
turn off, i.e. make code run regardless of CPU features (e.g.
for batch processing on a cluster).
- Added automatic detection of helicity combinations with
zero result.
9 Sep 13:
- Fixed detection of LHC energies in lumi_hadron.F.
8 Sep 13:
- Fixed another problem with categorization of abbreviations
(MoveDepsRight this time).
5 Sep 13:
- Upgraded to Cuba 3.2. Compilation with clang possible now.
1 Sep 13:
- Fixed problem with categorization of abbreviations (MoveDepsLeft).
2 Jul 13:
- Fixed generation of specs.h for particles with missing quantum numbers.
- Fixed minor issues in 2to4.F.
23 May 13:
- Improved simplification of OPP numerators.
8 May 13:
- Fixed technical problems in compiling OPP code with SIMD > 0.
Current versions of Samurai or CutTools allow only SIMD = 1,
however.
- Fixed some compiler issues in C code related to modification of
spinors of May 6.
7 May 13:
- Fixed FORM hiccup with Truncated -> True.
6 May 13:
- Fixed problem with spinors in the presence of self-conjugate fermions.
- Upgraded to Cuba 3.1.
23 Apr 13:
- Vectorization for helicity loop added in Fortran and C, in C uses
SSE3 (for SIMD = 1) or AVX (for SIMD = 2). Due to vectorization,
the fixed-format Fortran output is effectively Fortran 90 now.
Fortran 77 can still be forced if SIMD = 0 in distrib.h.
Thanks to Jean-Nicolas Lang for the SIMD implementation in C and
extensive testing.
- For the moment, Mac users need to ./configure CC=clang for SIMD > 0,
due to the availability of immintrin.h. Caveat: the Cuba part of
util.a does not (yet) compile with clang because of clang restrictions
on C99 language features.
- Parallelization (#define PARALLEL 1 in distrib.h) extended to C.
- New file distrib.h controls vectorization and parallelization for
both Fortran and C.
- The properties of the external particles, which so far had to be
hand-coded in process.h, are now generated (squaredme/specs.h).
Old process.h files have to be rewritten to include this file
instead of the direct definitions.
27 Mar 13:
- Fixed a bottleneck in CalcRenConst.
- Added FileTag option to CalcFeynAmp.
25 Mar 13:
- Fixed a few formatting statements for Mathematica 9.