C++QEDCore  2.100.2 (v2 Milestone 10 Development branch)
a framework for simulating open quantum dynamics – core
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
NegPT.h
Go to the documentation of this file.
1 // Copyright András Vukics 2006–2014. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.txt)
2 // -*- C++ -*-
4 #ifndef CPPQEDCORE_QUANTUMDATA_NEGPT_H_INCLUDED
5 #define CPPQEDCORE_QUANTUMDATA_NEGPT_H_INCLUDED
6 
7 #include "core_config.h"
8 
9 #include "DensityOperator.h"
10 
11 #include "TMP_Tools.h"
12 
13 
14 
15 #ifndef DO_NOT_USE_FLENS
16 
17 
18 namespace quantumdata {
19 
20 
22 
41 template<int RANK, typename V>
42 double negPT(const DensityOperator<RANK>&, V);
43 
44 template<int RANK>
45 inline
46 double negPT(const DensityOperator<RANK>&, tmptools::V_Empty)
47 {
48  return 0;
49 }
50 
51 
52 } // quantumdata
53 
54 
55 #else // DO_NOT_USE_FLENS
56 
57 namespace quantumdata {
58 
60 template<int RANK, typename V>
61 inline
62 std::string negPT(const DensityOperator<RANK>&, V)
63 {
64  return "n/a";
65 }
66 
67 
68 } // quantumdata
69 
70 
71 #endif // DO_NOT_USE_FLENS
72 
73 
74 #endif // CPPQEDCORE_QUANTUMDATA_NEGPT_H_INCLUDED
Comprises classes representing the state of composite quantum systems and providing various interface...
Definition: ArrayBase.h:16
Template metaprogramming tools, extending (and based on) Boost.MPL.
Defines class of the same name.
double negPT(const DensityOperator< RANK > &, V)
Calculates the negativity of the partial transpose of the density operator of an arbitrarily complex ...
A non-negative compile-time vector.
Definition: TMP_Tools.h:200