ProSHADE  0.7.5.1 (JAN 2021)
Protein Shape Detection
ProSHADE_run Class Reference

This class provides the access point to the library. More...

#include <ProSHADE.hpp>

Public Member Functions

 ProSHADE_run (ProSHADE_settings *settings)
 Contructor for the ProSHADE_run class. More...
 
 ~ProSHADE_run (void)
 Destructor for the ProSHADE class. More...
 
proshade_unsign getNoStructures (void)
 This function returns the number of structures used. More...
 
proshade_signed getVerbose (void)
 This function returns the verbose value. More...
 
proshade_unsign getNoRecommendedSymmetryAxes (void)
 This function returns the number of detected recommended symmetry axes. More...
 
proshade_unsign getNoSymmetryAxes (void)
 This function returns the number of detected recommended symmetry axes. More...
 
std::vector< proshade_double > getEnergyLevelsVector (void)
 This function returns the energy level distances vector from the first to all other structures. More...
 
std::vector< proshade_double > getTraceSigmaVector (void)
 This function returns the trace sigma distances vector from the first to all other structures. More...
 
std::vector< proshade_double > getRotationFunctionVector (void)
 This function returns the full rotation function distances vector from the first to all other structures. More...
 
std::string getSymmetryType (void)
 This is the main accessor function for the user to get to know what symmetry type ProSHADE has detected and recommends. More...
 
proshade_unsign getSymmetryFold (void)
 This is the main accessor function for the user to get to know what symmetry fold ProSHADE has detected and recommends. More...
 
std::vector< std::string > getSymmetryAxis (proshade_unsign axisNo)
 This function returns a single symmetry axis as a vector of strings from the recommended symmetry axes list. More...
 
std::vector< std::vector< proshade_double > > getAllCSyms (void)
 This function returns a all symmetry axes as a vector of vectors of doubles. More...
 
std::vector< proshade_signed > getOriginalBounds (proshade_unsign strNo)
 This function returns a specific structure original bounds. More...
 
std::vector< proshade_signed > getReBoxedBounds (proshade_unsign strNo)
 This function returns a specific structure re-boxed bounds. More...
 
proshade_double getMapValue (proshade_unsign strNo, proshade_unsign mapIndex)
 This function returns a single, specific structure map value. More...
 
std::vector< proshade_double > getEulerAngles (void)
 This function returns the vector of Euler angles with best overlay correlation. More...
 
std::vector< proshade_double > getOptimalRotMat (void)
 This function returns the vector forming rotation matrix (rows first) with best overlay correlation. More...
 
std::vector< proshade_double > getTranslationToOrigin (void)
 This function returns the negative values of the position of the rotation centre (the point about which the rotation should be done). More...
 
std::vector< proshade_double > getOriginToOverlayTranslation (void)
 This function returns the translation required to move the structure from origin to optimal overlay. More...
 

Detailed Description

This class provides the access point to the library.

This class codes the object that the user of the library needs to create (and presumably delete) in order to get access to the ProSHADE library.

Definition at line 38 of file ProSHADE.hpp.

Constructor & Destructor Documentation

◆ ProSHADE_run()

ProSHADE_run::ProSHADE_run ( ProSHADE_settings settings)

Contructor for the ProSHADE_run class.

This is where all the decisions regarding what should be done are made. It takes the settings and based on them, it decides what to do and how to report the results.

Parameters
[in]settingsProSHADE_settings object specifying what should be done.

Definition at line 1358 of file ProSHADE.cpp.

1359 {
1360  //================================================ Wellcome message if required
1362 
1363  //================================================ Save the general information
1364  this->noStructures = static_cast<proshade_unsign> ( settings->inputFiles.size() );
1365  this->verbose = static_cast<proshade_signed> ( settings->verbose );
1366 
1367  //================================================ Try to run ProSHADE
1368  try
1369  {
1370  //============================================ Depending on task, switch to correct function to call
1371  switch ( settings->task )
1372  {
1373  case NA:
1374  throw ProSHADE_exception ( "No task has been specified.", "E000001", __FILE__, __LINE__, __func__, "ProSHADE requires to be told which particular functiona-\n : lity (task) is requested from it. In order to do so, the\n : command line arguments specifying task need to be used\n : (if used from command line), or the ProSHADE_settings\n : object needs to have the member variable \'Task\' set to\n : one of the following values: Distances, Symmetry,\n : OverlayMap or MapManip." );
1375  break;
1376 
1377  case Symmetry:
1378  ProSHADE_internal_tasks::SymmetryDetectionTask ( settings, &this->RecomSymAxes, &this->allCSymAxes );
1379  this->setSymmetryResults ( settings );
1380  break;
1381 
1382  case Distances:
1383  ProSHADE_internal_tasks::DistancesComputationTask ( settings, &this->enLevs, &this->trSigm, &this->rotFun );
1384  break;
1385 
1386  case OverlayMap:
1387  ProSHADE_internal_tasks::MapOverlayTask ( settings, &this->coordRotationCentre, &this->eulerAngles, &this->overlayTranslation );
1388  break;
1389 
1390  case MapManip:
1391  ProSHADE_internal_tasks::MapManipulationTask ( settings, &this->originalBounds, &this->reboxedBounds, &this->manipulatedMaps );
1392  break;
1393  }
1394  }
1395 
1396  //================================================ If this is ProSHADE exception, give all available info and terminate gracefully :-)
1397  catch ( ProSHADE_exception& err )
1398  {
1399  std::cerr << std::endl << "=====================" << std::endl << "!! ProSHADE ERROR !!" << std::endl << "=====================" << std::endl << std::flush;
1400  std::cerr << "Error Code : " << err.get_errc() << std::endl << std::flush;
1401  std::cerr << "ProSHADE version : " << __PROSHADE_VERSION__ << std::endl << std::flush;
1402  std::cerr << "File : " << err.get_file() << std::endl << std::flush;
1403  std::cerr << "Line : " << err.get_line() << std::endl << std::flush;
1404  std::cerr << "Function : " << err.get_func() << std::endl << std::flush;
1405  std::cerr << "Message : " << err.what() << std::endl << std::flush;
1406  std::cerr << "Further information : " << err.get_info() << std::endl << std::endl << std::flush;
1407 
1408  //============================================ Done
1410  exit ( EXIT_FAILURE );
1411  }
1412 
1413  //================================================ Well, give all there is and just end
1414  catch ( ... )
1415  {
1416  std::cerr << std::endl << "=====================" << std::endl << "!! ProSHADE ERROR !!" << std::endl << "=====================" << std::endl << std::flush;
1417 
1418  //============================================ Try to find out more
1419 #if __cplusplus >= 201103L
1420  std::exception_ptr exc = std::current_exception();
1421  try
1422  {
1423  if (exc)
1424  {
1425  std::rethrow_exception ( exc );
1426  }
1427  }
1428  catch ( const std::exception& e )
1429  {
1430  std::cerr << "Caught unknown exception with following information: " << e.what() << std::endl << std::flush;
1431  }
1432 #else
1433  std::cerr << "Unknown error with no further explanation available. Please contact the author for help." << std::endl << std::flush;
1434 #endif
1435  std::cerr << "Terminating..." << std::endl << std::endl << std::flush;
1436 
1437  //============================================ Done
1439  exit ( EXIT_FAILURE );
1440  }
1441 
1442  //================================================ Terminating message
1444 
1445  //================================================ Done
1446 
1447 }

◆ ~ProSHADE_run()

ProSHADE_run::~ProSHADE_run ( void  )

Destructor for the ProSHADE class.

This destructor is responsible for releasing all memory used by the executing object

Definition at line 1453 of file ProSHADE.cpp.

1454 {
1455  //================================================ Release reboxing pointers
1456  if ( this->originalBounds.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->originalBounds.size() ); iter++ ) { delete[] this->originalBounds.at(iter); } }
1457  if ( this->reboxedBounds.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->reboxedBounds.size() ); iter++ ) { delete[] this->reboxedBounds.at(iter); } }
1458  if ( this->manipulatedMaps.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->manipulatedMaps.size() ); iter++ ) { delete[] this->manipulatedMaps.at(iter); } }
1459 
1460  //================================================ Clear vectors
1461  this->enLevs.clear ( );
1462  this->trSigm.clear ( );
1463  this->rotFun.clear ( );
1464 
1465  //================================================ Delete symmetry axes memory
1466  if ( this->RecomSymAxes.size() > 0 )
1467  {
1468  for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->RecomSymAxes.size() ); iter++ )
1469  {
1470  delete[] this->RecomSymAxes.at(iter);
1471  }
1472  this->RecomSymAxes.clear ( );
1473  }
1474 
1475  //================================================ Done
1476 
1477 }

Member Function Documentation

◆ getAllCSyms()

std::vector< std::vector< proshade_double > > ProSHADE_run::getAllCSyms ( void  )

This function returns a all symmetry axes as a vector of vectors of doubles.

Parameters
[out]valA vector of vectors of doubles containing all the symmetries axis fold, x, y, z axis element, angle and peak height in this order.

Definition at line 2408 of file ProSHADE.cpp.

2409 {
2410  //================================================ Done
2411  return ( this->allCSymAxes );
2412 
2413 }

◆ getEnergyLevelsVector()

std::vector< proshade_double > ProSHADE_run::getEnergyLevelsVector ( void  )

This function returns the energy level distances vector from the first to all other structures.

Parameters
[out]enLevsVector of doubles of the distances.

Definition at line 2290 of file ProSHADE.cpp.

2291 {
2292  //================================================ Return the value
2293  return ( this->enLevs );
2294 }

◆ getEulerAngles()

std::vector< proshade_double > ProSHADE_run::getEulerAngles ( void  )

This function returns the vector of Euler angles with best overlay correlation.

Parameters
[out]retVector of Euler angles (ZXZ convention) which lead to the globally best overlay correlation.

Definition at line 2515 of file ProSHADE.cpp.

2516 {
2517  //================================================ Sanity check
2518  if ( this->eulerAngles.size() != 3 )
2519  {
2520  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested rotation/translation values for Overlay functionality without having successfully computed it. Please check the correct task was used and no other warnings/errors were obtained.", "WO00042" );
2521  return ( std::vector< proshade_double > ( ) );
2522  }
2523 
2524  //================================================ Return required value
2525  return ( this->eulerAngles );
2526 
2527 }

◆ getMapValue()

proshade_double ProSHADE_run::getMapValue ( proshade_unsign  strNo,
proshade_unsign  mapIndex 
)

This function returns a single, specific structure map value.

Parameters
[in]strNoThe index of the structure for which the map value is to be returned.
[in]mapIndexThe map array index of which the value is returned.
[out]valThe map density value for the particular mapIndex position.

Definition at line 2477 of file ProSHADE.cpp.

2478 {
2479  //================================================ Return the value
2480  return ( this->manipulatedMaps.at(strNo)[mapIndex] );
2481 }

◆ getNoRecommendedSymmetryAxes()

proshade_unsign ProSHADE_run::getNoRecommendedSymmetryAxes ( void  )

This function returns the number of detected recommended symmetry axes.

Parameters
[out]valThe length of the recommended symmetry axes vector.

Definition at line 2350 of file ProSHADE.cpp.

2351 {
2352  //================================================ Return the value
2353  return ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) );
2354 }

◆ getNoStructures()

proshade_unsign ProSHADE_run::getNoStructures ( void  )

This function returns the number of structures used.

Parameters
[in]noStructuresNumber of structures supplied to the settings object.

Definition at line 2320 of file ProSHADE.cpp.

2321 {
2322  //================================================ Return the value
2323  return ( this->noStructures );
2324 }

◆ getNoSymmetryAxes()

proshade_unsign ProSHADE_run::getNoSymmetryAxes ( void  )

This function returns the number of detected recommended symmetry axes.

Parameters
[out]valThe length of the recommended symmetry axes vector.

Definition at line 2340 of file ProSHADE.cpp.

2341 {
2342  //================================================ Return the value
2343  return ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) );
2344 }

◆ getOptimalRotMat()

std::vector< proshade_double > ProSHADE_run::getOptimalRotMat ( void  )

This function returns the vector forming rotation matrix (rows first) with best overlay correlation.

Parameters
[out]retVector forming rotation matrix (rows first) which lead to the globally best overlay correlation.

Definition at line 2533 of file ProSHADE.cpp.

2534 {
2535  //================================================ Sanity check
2536  if ( this->eulerAngles.size() != 3 )
2537  {
2538  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested rotation/translation values for Overlay functionality without having successfully computed it. Please check the correct task was used and no other warnings/errors were obtained.", "WO00042" );
2539  return ( std::vector< proshade_double > ( ) );
2540  }
2541 
2542  //================================================ Obtain the optimal rotation matrix
2543  proshade_double* rotMat = new proshade_double[9];
2544  ProSHADE_internal_misc::checkMemoryAllocation ( rotMat, __FILE__, __LINE__, __func__ );
2545  ProSHADE_internal_maths::getRotationMatrixFromEulerZXZAngles ( this->eulerAngles.at(0), this->eulerAngles.at(1), this->eulerAngles.at(2), rotMat );
2546 
2547  //================================================ Copy to the output variable
2548  std::vector< proshade_double > ret;
2549  for ( proshade_unsign iter = 0; iter < 9; iter++ ) { ProSHADE_internal_misc::addToDoubleVector ( &ret, rotMat[iter] ); }
2550 
2551  //================================================ Release the memory
2552  delete[] rotMat;
2553 
2554  //================================================ Return required value
2555  return ( ret );
2556 
2557 }

◆ getOriginalBounds()

std::vector< proshade_signed > ProSHADE_run::getOriginalBounds ( proshade_unsign  strNo)

This function returns a specific structure original bounds.

Parameters
[in]strNoThe index of the structure for which the bounds are to be returned.

Definition at line 2419 of file ProSHADE.cpp.

2420 {
2421  //================================================ Sanity checks
2422  if ( noStructures <= strNo )
2423  {
2424  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested bounds for structure index which does not exist. Returning empty vector.", "WB00041" );
2425  return ( std::vector< proshade_signed > ( ) );
2426  }
2427 
2428  //================================================ Initialise local variables
2429  std::vector< proshade_signed > ret;
2430 
2431  //================================================ Input the axis data as strings
2432  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[0] );
2433  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[1] );
2434  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[2] );
2435  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[3] );
2436  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[4] );
2437  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[5] );
2438 
2439  //================================================ Done
2440  return ( ret );
2441 }

◆ getOriginToOverlayTranslation()

std::vector< proshade_double > ProSHADE_run::getOriginToOverlayTranslation ( void  )

This function returns the translation required to move the structure from origin to optimal overlay.

Parameters
[out]retTranslation required to move structure from origin to optimal overlay.

Definition at line 2587 of file ProSHADE.cpp.

2588 {
2589  //================================================ Sanity check
2590  if ( this->overlayTranslation.size() != 3 )
2591  {
2592  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested rotation/translation values for Overlay functionality without having successfully computed it. Please check the correct task was used and no other warnings/errors were obtained.", "WO00042" );
2593  return ( std::vector< proshade_double > ( ) );
2594  }
2595 
2596  //================================================ Return required value
2597  return ( this->overlayTranslation );
2598 
2599 }

◆ getReBoxedBounds()

std::vector< proshade_signed > ProSHADE_run::getReBoxedBounds ( proshade_unsign  strNo)

This function returns a specific structure re-boxed bounds.

Parameters
[in]strNoThe index of the structure for which the bounds are to be returned.

Definition at line 2447 of file ProSHADE.cpp.

2448 {
2449  //================================================ Sanity checks
2450  if ( noStructures <= strNo )
2451  {
2452  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested bounds for structure index which does not exist. Returning empty vector.", "WB00041" );
2453  return ( std::vector< proshade_signed > ( ) );
2454  }
2455 
2456  //================================================ Initialise local variables
2457  std::vector< proshade_signed > ret;
2458 
2459  //================================================ Input the axis data as strings
2460  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[0] );
2461  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[1] );
2462  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[2] );
2463  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[3] );
2464  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[4] );
2465  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[5] );
2466 
2467  //================================================ Done
2468  return ( ret );
2469 }

◆ getRotationFunctionVector()

std::vector< proshade_double > ProSHADE_run::getRotationFunctionVector ( void  )

This function returns the full rotation function distances vector from the first to all other structures.

Parameters
[out]rotFunVector of doubles of the distances.

Definition at line 2310 of file ProSHADE.cpp.

2311 {
2312  //================================================ Return the value
2313  return ( this->rotFun );
2314 }

◆ getSymmetryAxis()

std::vector< std::string > ProSHADE_run::getSymmetryAxis ( proshade_unsign  axisNo)

This function returns a single symmetry axis as a vector of strings from the recommended symmetry axes list.

Parameters
[in]axisNoThe index of the axis to be returned.
[out]valA vector of strings containing the symmetry axis fold, x, y, z axis element, angle and peak height in this order.

Definition at line 2361 of file ProSHADE.cpp.

2362 {
2363  //================================================ Sanity checks
2364  if ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) <= axisNo )
2365  {
2366  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested symmetry index does not exist. Returning empty vector.", "WS00039" );
2367  return ( std::vector< std::string > ( ) );
2368  }
2369 
2370  //================================================ Initialise local variables
2371  std::vector< std::string > ret;
2372 
2373  //================================================ Input the axis data as strings
2374  std::stringstream ssHlp;
2375  ssHlp << this->RecomSymAxes.at(axisNo)[0];
2376  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2377  ssHlp.str ( "" );
2378 
2379  ssHlp << this->RecomSymAxes.at(axisNo)[1];
2380  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2381  ssHlp.str ( "" );
2382 
2383  ssHlp << this->RecomSymAxes.at(axisNo)[2];
2384  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2385  ssHlp.str ( "" );
2386 
2387  ssHlp << this->RecomSymAxes.at(axisNo)[3];
2388  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2389  ssHlp.str ( "" );
2390 
2391  ssHlp << this->RecomSymAxes.at(axisNo)[4];
2392  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2393  ssHlp.str ( "" );
2394 
2395  ssHlp << this->RecomSymAxes.at(axisNo)[5];
2396  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2397  ssHlp.str ( "" );
2398 
2399  //================================================ Done
2400  return ( ret );
2401 
2402 }

◆ getSymmetryFold()

proshade_unsign ProSHADE_run::getSymmetryFold ( void  )

This is the main accessor function for the user to get to know what symmetry fold ProSHADE has detected and recommends.

Parameters
[out]symRecommFoldThis is the fold of ProSHADE detected and recommended symmetry (C and D symmetry types only).

Definition at line 1493 of file ProSHADE.cpp.

1494 {
1495  //================================================ Return the value
1496  return ( this->symRecommFold );
1497 }

◆ getSymmetryType()

std::string ProSHADE_run::getSymmetryType ( void  )

This is the main accessor function for the user to get to know what symmetry type ProSHADE has detected and recommends.

Parameters
[out]symRecommTypeThis is the value ( ""=None, C=cyclic, D=Dihedral, T=Tetrahedral, O=Octahedral or I=Icosahedral) of ProSHADE detected and recommended symmetry.

Definition at line 1483 of file ProSHADE.cpp.

1484 {
1485  //================================================ Return the value
1486  return ( this->symRecommType );
1487 }

◆ getTraceSigmaVector()

std::vector< proshade_double > ProSHADE_run::getTraceSigmaVector ( void  )

This function returns the trace sigma distances vector from the first to all other structures.

Parameters
[out]trSigmVector of doubles of the distances.

Definition at line 2300 of file ProSHADE.cpp.

2301 {
2302  //================================================ Return the value
2303  return ( this->trSigm );
2304 }

◆ getTranslationToOrigin()

std::vector< proshade_double > ProSHADE_run::getTranslationToOrigin ( void  )

This function returns the negative values of the position of the rotation centre (the point about which the rotation should be done).

Parameters
[out]retVector specifying the negative values of the rotation centre - i.e. the translation of the rotation centre to the origin.

Definition at line 2563 of file ProSHADE.cpp.

2564 {
2565  //================================================ Sanity check
2566  if ( this->coordRotationCentre.size() != 3 )
2567  {
2568  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested rotation/translation values for Overlay functionality without having successfully computed it. Please check the correct task was used and no other warnings/errors were obtained.", "WO00042" );
2569  return ( std::vector< proshade_double > ( ) );
2570  }
2571 
2572  //================================================ Create return variable with negative values of the internal varariable
2573  std::vector < proshade_double > ret;
2574  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(0) );
2575  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(1) );
2576  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(2) );
2577 
2578  //================================================ Return required value
2579  return ( ret );
2580 
2581 }

◆ getVerbose()

proshade_signed ProSHADE_run::getVerbose ( void  )

This function returns the verbose value.

Parameters
[in]verboseHow loud the run should be?

Definition at line 2330 of file ProSHADE.cpp.

2331 {
2332  //================================================ Return the value
2333  return ( this->verbose );
2334 }

The documentation for this class was generated from the following files:
ProSHADE_internal_tasks::MapOverlayTask
void MapOverlayTask(ProSHADE_settings *settings, std::vector< proshade_double > *rotationCentre, std::vector< proshade_double > *eulerAngles, std::vector< proshade_double > *finalTranslation)
The symmetry detection task driver function.
Definition: ProSHADE_tasks.cpp:371
ProSHADE_exception
This class is the representation of ProSHADE exception.
Definition: ProSHADE_exceptions.hpp:37
ProSHADE_internal_maths::getRotationMatrixFromEulerZXZAngles
void getRotationMatrixFromEulerZXZAngles(proshade_double eulerAlpha, proshade_double eulerBeta, proshade_double eulerGamma, proshade_double *matrix)
Function to find the rotation matrix from Euler angles (ZXZ convention).
Definition: ProSHADE_maths.cpp:1005
ProSHADE_internal_messages::printWarningMessage
void printWarningMessage(proshade_signed verbose, std::string message, std::string warnCode)
General stderr message printing (used for warnings).
Definition: ProSHADE_messages.cpp:101
ProSHADE_settings::verbose
proshade_signed verbose
Should the software report on the progress, or just be quiet? Value between -1 (nothing) and 4 (loud)
Definition: ProSHADE_settings.hpp:185
ProSHADE_internal_misc::addToDoubleVector
void addToDoubleVector(std::vector< proshade_double > *vecToAddTo, proshade_double elementToAdd)
Adds the element to the vector.
Definition: ProSHADE_misc.cpp:77
ProSHADE_internal_tasks::SymmetryDetectionTask
void SymmetryDetectionTask(ProSHADE_settings *settings, std::vector< proshade_double * > *axes, std::vector< std::vector< proshade_double > > *allCs)
The symmetry detection task driver function.
Definition: ProSHADE_tasks.cpp:286
ProSHADE_internal_tasks::MapManipulationTask
void MapManipulationTask(ProSHADE_settings *settings, std::vector< proshade_signed * > *originalBounds, std::vector< proshade_signed * > *reboxedBounds, std::vector< proshade_double * > *manipulatedMaps)
The re-boxing task driver function.
Definition: ProSHADE_tasks.cpp:35
ProSHADE_internal_misc::addToSignedVector
void addToSignedVector(std::vector< proshade_signed > *vecToAddTo, proshade_signed elementToAdd)
Adds the element to the vector.
Definition: ProSHADE_misc.cpp:121
ProSHADE_settings::task
ProSHADE_Task task
This custom type variable determines which task to perfom (i.e. symmetry detection,...
Definition: ProSHADE_settings.hpp:89
ProSHADE_internal_tasks::DistancesComputationTask
void DistancesComputationTask(ProSHADE_settings *settings, std::vector< proshade_double > *enLevs, std::vector< proshade_double > *trSigm, std::vector< proshade_double > *rotFun)
The distances computation task driver function.
Definition: ProSHADE_tasks.cpp:147
ProSHADE_internal_messages::printWellcomeMessage
void printWellcomeMessage(proshade_signed verbose)
Wellcome message printing.
Definition: ProSHADE_messages.cpp:31
ProSHADE_internal_messages::printTerminateMessage
void printTerminateMessage(proshade_signed verbose)
Final message printing.
Definition: ProSHADE_messages.cpp:49
ProSHADE_internal_misc::checkMemoryAllocation
void checkMemoryAllocation(chVar checkVar, std::string fileP, unsigned int lineP, std::string funcP, std::string infoP="This error may occurs when ProSHADE requests memory to be\n : allocated to it and this operation fails. This could\n : happen when not enough memory is available, either due to\n : other processes using a lot of memory, or when the machine\n : does not have sufficient memory available. Re-run to see\n : if this problem persists.")
Checks if memory was allocated properly.
Definition: ProSHADE_misc.hpp:65
ProSHADE_settings::inputFiles
std::vector< std::string > inputFiles
This vector contains the filenames of all input structure files.
Definition: ProSHADE_settings.hpp:92
ProSHADE_internal_misc::addToStringVector
void addToStringVector(std::vector< std::string > *vecToAddTo, std::string elementToAdd)
Adds the element to the vector.
Definition: ProSHADE_misc.cpp:33