~ubuntu-branches/ubuntu/wily/rheolef/wily

« back to all changes in this revision

Viewing changes to nfem/plib/form_vf_expr_ops.h

  • Committer: Package Import Robot
  • Author(s): Pierre Saramito
  • Date: 2013-09-16 17:11:03 UTC
  • mfrom: (1.2.2)
  • Revision ID: package-import@ubuntu.com-20130916171103-3osrjwzjx20bstow
Tags: 6.5-1
* New upstream release 6.5 (major changes):
   - new discontinuous Galerkin FEM methods
   - source code compile now with g++-4.8 and boost-1.54 (closes: #701347)
     thanks to Matthias Klose <doko@debian.org>
   - minor bug fixes (closes: #716110, #715672, #716547)
     thanks to Alexandre Rebert <alexandre@cmu.edu>
   - minor changes for automake-1.14
* control:
  - add break and replaces rules (closes: #709155)
    thanks to a patch from Andreas Beckmann <anbe@debian.org>
  - fix lintian warning "vcs-fields-not-canonical" (closes: #714185)
    thanks to Sebastian Ramacher <sramacher@debian.org>
  - remove texi2html from "build-depends" (was a lintian error)
* rules: add "make distclean" to the rules/clean target (closes: #714204)
  thanks to explanations from Sebastian Ramacher <sramacher@debian.org>

Show diffs side-by-side

added added

removed removed

Lines of Context:
566
566
form_vf_expr<
567
567
  form_vf_expr_binded_bf<
568
568
    details::multiplies
 
569
   ,field_expr_terminal_function<typename Expr::scalar_type(const point_basic<typename Expr::scalar_type>&)>
 
570
   ,form_vf_expr<Expr>
 
571
  >
 
572
>
 
573
operator* (typename Expr::scalar_type(&x)(const point_basic<typename Expr::scalar_type>&), const form_vf_expr<Expr>& y)
 
574
{
 
575
  typedef details::multiplies                         raw_op_t;
 
576
  typedef raw_op_t                         op_t;
 
577
  typedef field_expr_terminal_function<typename Expr::scalar_type(const point_basic<typename Expr::scalar_type>&)>                            fld_t;
 
578
  typedef form_vf_expr<Expr>                            tst_t;
 
579
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
580
  return  form_vf_expr<expr_t>(expr_t(op_t(), fld_t(x), y));
 
581
}
 
582
template<class Expr>
 
583
inline
 
584
form_vf_expr<
 
585
  form_vf_expr_binded_bf<
 
586
    details::multiplies
569
587
   ,field_expr_terminal_function<function<Float(const point&)> >
570
588
   ,form_vf_expr<Expr>
571
589
  >
597
615
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
598
616
  return  form_vf_expr<expr_t>(expr_t(op_t(), fld_t(x.get_ref()), y));
599
617
}
 
618
template<class Expr>
 
619
inline
 
620
form_vf_expr<
 
621
  form_vf_expr_binded_bf<
 
622
    details::multiplies
 
623
   ,field_expr_terminal_function<point_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>
 
624
   ,form_vf_expr<Expr>
 
625
  >
 
626
>
 
627
operator* (point_basic<typename Expr::scalar_type>(&x)(const point_basic<typename Expr::scalar_type>&), const form_vf_expr<Expr>& y)
 
628
{
 
629
  typedef details::multiplies                         raw_op_t;
 
630
  typedef raw_op_t                         op_t;
 
631
  typedef field_expr_terminal_function<point_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>                            fld_t;
 
632
  typedef form_vf_expr<Expr>                            tst_t;
 
633
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
634
  return  form_vf_expr<expr_t>(expr_t(op_t(), fld_t(x), y));
 
635
}
600
636
template<class Fun, class Expr>
601
637
inline
602
638
form_vf_expr<
615
651
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
616
652
  return  form_vf_expr<expr_t>(expr_t(op_t(), fld_t(x.get_ref()), y));
617
653
}
 
654
template<class Expr>
 
655
inline
 
656
form_vf_expr<
 
657
  form_vf_expr_binded_bf<
 
658
    details::multiplies
 
659
   ,field_expr_terminal_function<tensor_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>
 
660
   ,form_vf_expr<Expr>
 
661
  >
 
662
>
 
663
operator* (tensor_basic<typename Expr::scalar_type>(&x)(const point_basic<typename Expr::scalar_type>&), const form_vf_expr<Expr>& y)
 
664
{
 
665
  typedef details::multiplies                         raw_op_t;
 
666
  typedef raw_op_t                         op_t;
 
667
  typedef field_expr_terminal_function<tensor_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>                            fld_t;
 
668
  typedef form_vf_expr<Expr>                            tst_t;
 
669
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
670
  return  form_vf_expr<expr_t>(expr_t(op_t(), fld_t(x), y));
 
671
}
618
672
template<class T, class M, class Expr>
619
673
inline
620
674
form_vf_expr<
692
746
form_vf_expr<
693
747
  form_vf_expr_binded_bf<
694
748
    details::swapper<details::multiplies>
 
749
   ,field_expr_terminal_function<typename Expr::scalar_type(const point_basic<typename Expr::scalar_type>&)>
 
750
   ,form_vf_expr<Expr>
 
751
  >
 
752
>
 
753
operator* (const form_vf_expr<Expr>& x, typename Expr::scalar_type(&y)(const point_basic<typename Expr::scalar_type>&))
 
754
{
 
755
  typedef details::multiplies                         raw_op_t;
 
756
  typedef details::swapper<raw_op_t>                         op_t;
 
757
  typedef field_expr_terminal_function<typename Expr::scalar_type(const point_basic<typename Expr::scalar_type>&)>                            fld_t;
 
758
  typedef form_vf_expr<Expr>                            tst_t;
 
759
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
760
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y), x));
 
761
}
 
762
template<class Expr>
 
763
inline
 
764
form_vf_expr<
 
765
  form_vf_expr_binded_bf<
 
766
    details::swapper<details::multiplies>
695
767
   ,field_expr_terminal_function<function<Float(const point&)> >
696
768
   ,form_vf_expr<Expr>
697
769
  >
723
795
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
724
796
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y.get_ref()), x));
725
797
}
 
798
template<class Expr>
 
799
inline
 
800
form_vf_expr<
 
801
  form_vf_expr_binded_bf<
 
802
    details::swapper<details::multiplies>
 
803
   ,field_expr_terminal_function<point_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>
 
804
   ,form_vf_expr<Expr>
 
805
  >
 
806
>
 
807
operator* (const form_vf_expr<Expr>& x, point_basic<typename Expr::scalar_type>(&y)(const point_basic<typename Expr::scalar_type>&))
 
808
{
 
809
  typedef details::multiplies                         raw_op_t;
 
810
  typedef details::swapper<raw_op_t>                         op_t;
 
811
  typedef field_expr_terminal_function<point_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>                            fld_t;
 
812
  typedef form_vf_expr<Expr>                            tst_t;
 
813
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
814
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y), x));
 
815
}
726
816
template<class Fun, class Expr>
727
817
inline
728
818
form_vf_expr<
741
831
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
742
832
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y.get_ref()), x));
743
833
}
 
834
template<class Expr>
 
835
inline
 
836
form_vf_expr<
 
837
  form_vf_expr_binded_bf<
 
838
    details::swapper<details::multiplies>
 
839
   ,field_expr_terminal_function<tensor_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>
 
840
   ,form_vf_expr<Expr>
 
841
  >
 
842
>
 
843
operator* (const form_vf_expr<Expr>& x, tensor_basic<typename Expr::scalar_type>(&y)(const point_basic<typename Expr::scalar_type>&))
 
844
{
 
845
  typedef details::multiplies                         raw_op_t;
 
846
  typedef details::swapper<raw_op_t>                         op_t;
 
847
  typedef field_expr_terminal_function<tensor_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>                            fld_t;
 
848
  typedef form_vf_expr<Expr>                            tst_t;
 
849
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
850
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y), x));
 
851
}
744
852
template<class T, class M, class Expr>
745
853
inline
746
854
form_vf_expr<
818
926
form_vf_expr<
819
927
  form_vf_expr_binded_bf<
820
928
    details::swapper<details::divides>
 
929
   ,field_expr_terminal_function<typename Expr::scalar_type(const point_basic<typename Expr::scalar_type>&)>
 
930
   ,form_vf_expr<Expr>
 
931
  >
 
932
>
 
933
operator/ (const form_vf_expr<Expr>& x, typename Expr::scalar_type(&y)(const point_basic<typename Expr::scalar_type>&))
 
934
{
 
935
  typedef details::divides                         raw_op_t;
 
936
  typedef details::swapper<raw_op_t>                         op_t;
 
937
  typedef field_expr_terminal_function<typename Expr::scalar_type(const point_basic<typename Expr::scalar_type>&)>                            fld_t;
 
938
  typedef form_vf_expr<Expr>                            tst_t;
 
939
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
940
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y), x));
 
941
}
 
942
template<class Expr>
 
943
inline
 
944
form_vf_expr<
 
945
  form_vf_expr_binded_bf<
 
946
    details::swapper<details::divides>
821
947
   ,field_expr_terminal_function<function<Float(const point&)> >
822
948
   ,form_vf_expr<Expr>
823
949
  >
903
1029
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
904
1030
  return  form_vf_expr<expr_t>(expr_t(op_t(), fld_t(x.get_ref()), y));
905
1031
}
 
1032
template<class Expr>
 
1033
inline
 
1034
form_vf_expr<
 
1035
  form_vf_expr_binded_bf<
 
1036
    details::dot_
 
1037
   ,field_expr_terminal_function<point_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>
 
1038
   ,form_vf_expr<Expr>
 
1039
  >
 
1040
>
 
1041
dot (point_basic<typename Expr::scalar_type>(&x)(const point_basic<typename Expr::scalar_type>&), const form_vf_expr<Expr>& y)
 
1042
{
 
1043
  typedef details::dot_                         raw_op_t;
 
1044
  typedef raw_op_t                         op_t;
 
1045
  typedef field_expr_terminal_function<point_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>                            fld_t;
 
1046
  typedef form_vf_expr<Expr>                            tst_t;
 
1047
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
1048
  return  form_vf_expr<expr_t>(expr_t(op_t(), fld_t(x), y));
 
1049
}
 
1050
template<class Expr>
 
1051
inline
 
1052
form_vf_expr<
 
1053
  form_vf_expr_binded_bf<
 
1054
    details::dot_
 
1055
   ,field_expr_terminal_function<function<point_basic<Float>(const point&)> >
 
1056
   ,form_vf_expr<Expr>
 
1057
  >
 
1058
>
 
1059
dot (const function<point_basic<Float>(const point&)>& x, const form_vf_expr<Expr>& y)
 
1060
{
 
1061
  typedef details::dot_                         raw_op_t;
 
1062
  typedef raw_op_t                         op_t;
 
1063
  typedef field_expr_terminal_function<function<point_basic<Float>(const point&)> >                            fld_t;
 
1064
  typedef form_vf_expr<Expr>                            tst_t;
 
1065
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
1066
  return  form_vf_expr<expr_t>(expr_t(op_t(), fld_t(x), y));
 
1067
}
906
1068
template<class T, class M, class Expr>
907
1069
inline
908
1070
form_vf_expr<
975
1137
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
976
1138
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y.get_ref()), x));
977
1139
}
 
1140
template<class Expr>
 
1141
inline
 
1142
form_vf_expr<
 
1143
  form_vf_expr_binded_bf<
 
1144
    details::swapper<details::dot_>
 
1145
   ,field_expr_terminal_function<point_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>
 
1146
   ,form_vf_expr<Expr>
 
1147
  >
 
1148
>
 
1149
dot (const form_vf_expr<Expr>& x, point_basic<typename Expr::scalar_type>(&y)(const point_basic<typename Expr::scalar_type>&))
 
1150
{
 
1151
  typedef details::dot_                         raw_op_t;
 
1152
  typedef details::swapper<raw_op_t>                         op_t;
 
1153
  typedef field_expr_terminal_function<point_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>                            fld_t;
 
1154
  typedef form_vf_expr<Expr>                            tst_t;
 
1155
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
1156
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y), x));
 
1157
}
 
1158
template<class Expr>
 
1159
inline
 
1160
form_vf_expr<
 
1161
  form_vf_expr_binded_bf<
 
1162
    details::swapper<details::dot_>
 
1163
   ,field_expr_terminal_function<function<point_basic<Float>(const point&)> >
 
1164
   ,form_vf_expr<Expr>
 
1165
  >
 
1166
>
 
1167
dot (const form_vf_expr<Expr>& x, const function<point_basic<Float>(const point&)>& y)
 
1168
{
 
1169
  typedef details::dot_                         raw_op_t;
 
1170
  typedef details::swapper<raw_op_t>                         op_t;
 
1171
  typedef field_expr_terminal_function<function<point_basic<Float>(const point&)> >                            fld_t;
 
1172
  typedef form_vf_expr<Expr>                            tst_t;
 
1173
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
1174
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y), x));
 
1175
}
978
1176
template<class T, class M, class Expr>
979
1177
inline
980
1178
form_vf_expr<
1047
1245
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
1048
1246
  return  form_vf_expr<expr_t>(expr_t(op_t(), fld_t(x.get_ref()), y));
1049
1247
}
 
1248
template<class Expr>
 
1249
inline
 
1250
form_vf_expr<
 
1251
  form_vf_expr_binded_bf<
 
1252
    details::ddot_
 
1253
   ,field_expr_terminal_function<tensor_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>
 
1254
   ,form_vf_expr<Expr>
 
1255
  >
 
1256
>
 
1257
ddot (tensor_basic<typename Expr::scalar_type>(&x)(const point_basic<typename Expr::scalar_type>&), const form_vf_expr<Expr>& y)
 
1258
{
 
1259
  typedef details::ddot_                         raw_op_t;
 
1260
  typedef raw_op_t                         op_t;
 
1261
  typedef field_expr_terminal_function<tensor_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>                            fld_t;
 
1262
  typedef form_vf_expr<Expr>                            tst_t;
 
1263
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
1264
  return  form_vf_expr<expr_t>(expr_t(op_t(), fld_t(x), y));
 
1265
}
 
1266
template<class Expr>
 
1267
inline
 
1268
form_vf_expr<
 
1269
  form_vf_expr_binded_bf<
 
1270
    details::ddot_
 
1271
   ,field_expr_terminal_function<function<tensor_basic<Float>(const point&)> >
 
1272
   ,form_vf_expr<Expr>
 
1273
  >
 
1274
>
 
1275
ddot (const function<tensor_basic<Float>(const point&)>& x, const form_vf_expr<Expr>& y)
 
1276
{
 
1277
  typedef details::ddot_                         raw_op_t;
 
1278
  typedef raw_op_t                         op_t;
 
1279
  typedef field_expr_terminal_function<function<tensor_basic<Float>(const point&)> >                            fld_t;
 
1280
  typedef form_vf_expr<Expr>                            tst_t;
 
1281
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
1282
  return  form_vf_expr<expr_t>(expr_t(op_t(), fld_t(x), y));
 
1283
}
1050
1284
template<class T, class M, class Expr>
1051
1285
inline
1052
1286
form_vf_expr<
1119
1353
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
1120
1354
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y.get_ref()), x));
1121
1355
}
 
1356
template<class Expr>
 
1357
inline
 
1358
form_vf_expr<
 
1359
  form_vf_expr_binded_bf<
 
1360
    details::swapper<details::ddot_>
 
1361
   ,field_expr_terminal_function<tensor_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>
 
1362
   ,form_vf_expr<Expr>
 
1363
  >
 
1364
>
 
1365
ddot (const form_vf_expr<Expr>& x, tensor_basic<typename Expr::scalar_type>(&y)(const point_basic<typename Expr::scalar_type>&))
 
1366
{
 
1367
  typedef details::ddot_                         raw_op_t;
 
1368
  typedef details::swapper<raw_op_t>                         op_t;
 
1369
  typedef field_expr_terminal_function<tensor_basic<typename Expr::scalar_type>(const point_basic<typename Expr::scalar_type>&)>                            fld_t;
 
1370
  typedef form_vf_expr<Expr>                            tst_t;
 
1371
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
1372
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y), x));
 
1373
}
 
1374
template<class Expr>
 
1375
inline
 
1376
form_vf_expr<
 
1377
  form_vf_expr_binded_bf<
 
1378
    details::swapper<details::ddot_>
 
1379
   ,field_expr_terminal_function<function<tensor_basic<Float>(const point&)> >
 
1380
   ,form_vf_expr<Expr>
 
1381
  >
 
1382
>
 
1383
ddot (const form_vf_expr<Expr>& x, const function<tensor_basic<Float>(const point&)>& y)
 
1384
{
 
1385
  typedef details::ddot_                         raw_op_t;
 
1386
  typedef details::swapper<raw_op_t>                         op_t;
 
1387
  typedef field_expr_terminal_function<function<tensor_basic<Float>(const point&)> >                            fld_t;
 
1388
  typedef form_vf_expr<Expr>                            tst_t;
 
1389
  typedef form_vf_expr_binded_bf<op_t,fld_t,tst_t>  expr_t;
 
1390
  return  form_vf_expr<expr_t>(expr_t(op_t(raw_op_t()), fld_t(y), x));
 
1391
}
1122
1392
} // namespace rheolef
1123
1393
#endif // _RHEOLEF_FORM_VF_EXPR_OPS_H