#include "colvarmodule.h"Go to the source code of this file.
Classes | |
| class | colvarvalue |
| Value of a collective variable: this is a metatype which can be set at runtime. By default it is set to be a scalar number, and can be treated like that in all operations (this is done by most implementations). More... | |
Functions | |
| colvarvalue | operator+ (colvarvalue const &x1, colvarvalue const &x2) |
| colvarvalue | operator- (colvarvalue const &x1, colvarvalue const &x2) |
| colvarvalue | operator * (cvm::real const &a, colvarvalue const &x) |
| colvarvalue | operator * (colvarvalue const &x, cvm::real const &a) |
| colvarvalue | operator/ (colvarvalue const &x, cvm::real const &a) |
| cvm::real | operator * (colvarvalue const &x1, colvarvalue const &x2) |
| std::ostream & | operator<< (std::ostream &os, colvarvalue const &x) |
| std::ostream & | operator<< (std::ostream &os, std::vector< colvarvalue > const &v) |
| std::istream & | operator>> (std::istream &is, colvarvalue &x) |
|
||||||||||||
|
Definition at line 608 of file colvarvalue.h. References colvarvalue::check_types(), colvarmodule::quaternion::inner(), colvarvalue::quaternion_value, colvarvalue::real_value, colvarvalue::rvector_value, colvarvalue::type_checking(), colvarvalue::undef_op(), and colvarvalue::value_type. 00610 {
00611 if (colvarvalue::type_checking())
00612 colvarvalue::check_types (x1, x2);
00613
00614 switch (x1.value_type) {
00615 case colvarvalue::type_scalar:
00616 return (x1.real_value * x2.real_value);
00617 case colvarvalue::type_vector:
00618 case colvarvalue::type_unitvector:
00619 return (x1.rvector_value * x2.rvector_value);
00620 case colvarvalue::type_quaternion:
00621 // the "*" product is the quaternion product, here the inner
00622 // member function is used instead
00623 return (x1.quaternion_value.inner (x2.quaternion_value));
00624 case colvarvalue::type_notset:
00625 default:
00626 x1.undef_op();
00627 return 0.0;
00628 };
00629 }
|
|
||||||||||||
|
Definition at line 565 of file colvarvalue.h. References colvarvalue::quaternion_value, colvarvalue::real_value, colvarvalue::rvector_value, colvarvalue::undef_op(), and colvarvalue::value_type. 00567 {
00568 switch (x.value_type) {
00569 case colvarvalue::type_scalar:
00570 return colvarvalue (x.real_value * a);
00571 case colvarvalue::type_vector:
00572 return colvarvalue (x.rvector_value * a);
00573 case colvarvalue::type_unitvector:
00574 return colvarvalue (x.rvector_value * a,
00575 colvarvalue::type_unitvector);
00576 case colvarvalue::type_quaternion:
00577 return colvarvalue (x.quaternion_value * a);
00578 case colvarvalue::type_notset:
00579 default:
00580 x.undef_op();
00581 return colvarvalue (colvarvalue::type_notset);
00582 }
00583 }
|
|
||||||||||||
|
Definition at line 545 of file colvarvalue.h. References colvarvalue::quaternion_value, colvarvalue::real_value, colvarvalue::rvector_value, colvarvalue::undef_op(), and colvarvalue::value_type. 00547 {
00548 switch (x.value_type) {
00549 case colvarvalue::type_scalar:
00550 return colvarvalue (a * x.real_value);
00551 case colvarvalue::type_vector:
00552 return colvarvalue (a * x.rvector_value);
00553 case colvarvalue::type_unitvector:
00554 return colvarvalue (a * x.rvector_value,
00555 colvarvalue::type_unitvector);
00556 case colvarvalue::type_quaternion:
00557 return colvarvalue (a * x.quaternion_value);
00558 case colvarvalue::type_notset:
00559 default:
00560 x.undef_op();
00561 return colvarvalue (colvarvalue::type_notset);
00562 }
00563 }
|
|
||||||||||||
|
Definition at line 497 of file colvarvalue.h. References colvarvalue::check_types(), colvarvalue::quaternion_value, colvarvalue::real_value, colvarvalue::rvector_value, colvarvalue::type_checking(), colvarvalue::undef_op(), and colvarvalue::value_type. 00499 {
00500 if (colvarvalue::type_checking())
00501 colvarvalue::check_types (x1, x2);
00502
00503 switch (x1.value_type) {
00504 case colvarvalue::type_scalar:
00505 return colvarvalue (x1.real_value + x2.real_value);
00506 case colvarvalue::type_vector:
00507 return colvarvalue (x1.rvector_value + x2.rvector_value);
00508 case colvarvalue::type_unitvector:
00509 return colvarvalue (x1.rvector_value + x2.rvector_value,
00510 colvarvalue::type_unitvector);
00511 case colvarvalue::type_quaternion:
00512 return colvarvalue (x1.quaternion_value + x2.quaternion_value);
00513 case colvarvalue::type_notset:
00514 default:
00515 x1.undef_op();
00516 return colvarvalue (colvarvalue::type_notset);
00517 };
00518 }
|
|
||||||||||||
|
Definition at line 520 of file colvarvalue.h. References colvarvalue::check_types(), colvarvalue::quaternion_value, colvarvalue::real_value, colvarvalue::rvector_value, colvarvalue::type_checking(), colvarvalue::undef_op(), and colvarvalue::value_type. 00522 {
00523 if (colvarvalue::type_checking())
00524 colvarvalue::check_types (x1, x2);
00525
00526 switch (x1.value_type) {
00527 case colvarvalue::type_scalar:
00528 return colvarvalue (x1.real_value - x2.real_value);
00529 case colvarvalue::type_vector:
00530 return colvarvalue (x1.rvector_value - x2.rvector_value);
00531 case colvarvalue::type_unitvector:
00532 return colvarvalue (x1.rvector_value - x2.rvector_value,
00533 colvarvalue::type_unitvector);
00534 case colvarvalue::type_quaternion:
00535 return colvarvalue (x1.quaternion_value - x2.quaternion_value);
00536 default:
00537 x1.undef_op();
00538 return colvarvalue (colvarvalue::type_notset);
00539 };
00540 }
|
|
||||||||||||
|
Definition at line 585 of file colvarvalue.h. References colvarvalue::quaternion_value, colvarvalue::real_value, colvarvalue::rvector_value, colvarvalue::undef_op(), and colvarvalue::value_type. 00587 {
00588 switch (x.value_type) {
00589 case colvarvalue::type_scalar:
00590 return colvarvalue (x.real_value / a);
00591 case colvarvalue::type_vector:
00592 return colvarvalue (x.rvector_value / a);
00593 case colvarvalue::type_unitvector:
00594 return colvarvalue (x.rvector_value / a,
00595 colvarvalue::type_unitvector);
00596 case colvarvalue::type_quaternion:
00597 return colvarvalue (x.quaternion_value / a);
00598 case colvarvalue::type_notset:
00599 default:
00600 x.undef_op();
00601 return colvarvalue (colvarvalue::type_notset);
00602 }
00603 }
|
|
||||||||||||
|
Definition at line 212 of file colvarvalue.C. 00213 {
00214 for (size_t i = 0; i < v.size(); i++) os << v[i];
00215 return os;
00216 }
|
|
||||||||||||
|
Definition at line 195 of file colvarvalue.C. References colvarvalue::quaternion_value, colvarvalue::real_value, colvarvalue::rvector_value, and colvarvalue::type(). 00196 {
00197 switch (x.type()) {
00198 case colvarvalue::type_scalar:
00199 os << x.real_value; break;
00200 case colvarvalue::type_vector:
00201 case colvarvalue::type_unitvector:
00202 os << x.rvector_value; break;
00203 case colvarvalue::type_quaternion:
00204 os << x.quaternion_value; break;
00205 case colvarvalue::type_notset:
00206 os << "not set"; break;
00207 }
00208 return os;
00209 }
|
|
||||||||||||
|
Definition at line 219 of file colvarvalue.C. References colvarvalue::apply_constraints(), colvarmodule::fatal_error(), colvarvalue::quaternion_value, colvarvalue::real_value, colvarvalue::rvector_value, colvarvalue::type(), and colvarvalue::undef_op(). 00220 {
00221 if (x.type() == colvarvalue::type_notset) {
00222 cvm::fatal_error ("Trying to read from a stream a colvarvalue, "
00223 "which has not yet been assigned a data type.\n");
00224 }
00225
00226 switch (x.type()) {
00227 case colvarvalue::type_scalar:
00228 is >> x.real_value;
00229 break;
00230 case colvarvalue::type_vector:
00231 case colvarvalue::type_unitvector:
00232 is >> x.rvector_value;
00233 break;
00234 case colvarvalue::type_quaternion:
00235 is >> x.quaternion_value;
00236 break;
00237 default:
00238 x.undef_op();
00239 }
00240 x.apply_constraints();
00241 return is;
00242 }
|
1.3.9.1