00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_ALGEBRA_CONCEPT_NUMERICAL_SEMIRING_HH
00018 # define VCSN_ALGEBRA_CONCEPT_NUMERICAL_SEMIRING_HH
00019
00020 # include <vaucanson/algebra/concept/semiring_base.hh>
00021
00022 namespace vcsn {
00023
00024 namespace algebra {
00025
00029
00030
00031
00033 struct NumericalSemiring
00034 : SemiringBase<NumericalSemiring>
00035 {
00036 bool operator == (const NumericalSemiring&) const;
00037 };
00038
00042 }
00043
00047
00048
00049
00051 template<>
00052 struct dynamic_traits<algebra::NumericalSemiring>
00053 : dynamic_traits<algebra::SemiringBase<algebra::NumericalSemiring> >
00054 {
00055 };
00056
00057 template<>
00058 struct virtual_types<algebra::NumericalSemiring>
00059 : virtual_types<algebra::SemiringBase<algebra::NumericalSemiring> >
00060 {
00061 };
00062
00064 template<typename T>
00065 struct MetaElement<algebra::NumericalSemiring, T>
00066 : MetaElement<algebra::SemiringBase<algebra::NumericalSemiring>, T>
00067 {};
00068
00073 }
00074
00075
00076 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
00077 # include <vaucanson/algebra/concept/numerical_semiring.hxx>
00078 # endif // VCSN_USE_INTERFACE_ONLY
00079
00080
00081 #endif // ! VCSN_ALGEBRA_CONCEPT_NUMERICAL_SEMIRING_HH