ProSHADE  0.7.5.4 (MAR 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 1369 of file ProSHADE.cpp.

1370 {
1371  //================================================ Wellcome message if required
1373 
1374  //================================================ Save the general information
1375  this->noStructures = static_cast<proshade_unsign> ( settings->inputFiles.size() );
1376  this->verbose = static_cast<proshade_signed> ( settings->verbose );
1377 
1378  //================================================ Try to run ProSHADE
1379  try
1380  {
1381  //============================================ Depending on task, switch to correct function to call
1382  switch ( settings->task )
1383  {
1384  case NA:
1385  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." );
1386  break;
1387 
1388  case Symmetry:
1389  ProSHADE_internal_tasks::SymmetryDetectionTask ( settings, &this->RecomSymAxes, &this->allCSymAxes );
1390  this->setSymmetryResults ( settings );
1391  break;
1392 
1393  case Distances:
1394  ProSHADE_internal_tasks::DistancesComputationTask ( settings, &this->enLevs, &this->trSigm, &this->rotFun );
1395  break;
1396 
1397  case OverlayMap:
1398  ProSHADE_internal_tasks::MapOverlayTask ( settings, &this->coordRotationCentre, &this->eulerAngles, &this->overlayTranslation );
1399  break;
1400 
1401  case MapManip:
1402  ProSHADE_internal_tasks::MapManipulationTask ( settings, &this->originalBounds, &this->reboxedBounds, &this->manipulatedMaps );
1403  break;
1404  }
1405  }
1406 
1407  //================================================ If this is ProSHADE exception, give all available info and terminate gracefully :-)
1408  catch ( ProSHADE_exception& err )
1409  {
1410  std::cerr << std::endl << "=====================" << std::endl << "!! ProSHADE ERROR !!" << std::endl << "=====================" << std::endl << std::flush;
1411  std::cerr << "Error Code : " << err.get_errc() << std::endl << std::flush;
1412  std::cerr << "ProSHADE version : " << __PROSHADE_VERSION__ << std::endl << std::flush;
1413  std::cerr << "File : " << err.get_file() << std::endl << std::flush;
1414  std::cerr << "Line : " << err.get_line() << std::endl << std::flush;
1415  std::cerr << "Function : " << err.get_func() << std::endl << std::flush;
1416  std::cerr << "Message : " << err.what() << std::endl << std::flush;
1417  std::cerr << "Further information : " << err.get_info() << std::endl << std::endl << std::flush;
1418 
1419  //============================================ Done
1421  exit ( EXIT_FAILURE );
1422  }
1423 
1424  //================================================ Well, give all there is and just end
1425  catch ( ... )
1426  {
1427  std::cerr << std::endl << "=====================" << std::endl << "!! ProSHADE ERROR !!" << std::endl << "=====================" << std::endl << std::flush;
1428 
1429  //============================================ Try to find out more
1430 #if __cplusplus >= 201103L
1431  std::exception_ptr exc = std::current_exception();
1432  try
1433  {
1434  if (exc)
1435  {
1436  std::rethrow_exception ( exc );
1437  }
1438  }
1439  catch ( const std::exception& e )
1440  {
1441  std::cerr << "Caught unknown exception with following information: " << e.what() << std::endl << std::flush;
1442  }
1443 #else
1444  std::cerr << "Unknown error with no further explanation available. Please contact the author for help." << std::endl << std::flush;
1445 #endif
1446  std::cerr << "Terminating..." << std::endl << std::endl << std::flush;
1447 
1448  //============================================ Done
1450  exit ( EXIT_FAILURE );
1451  }
1452 
1453  //================================================ Terminating message
1455 
1456  //================================================ Done
1457 
1458 }

◆ ~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 1464 of file ProSHADE.cpp.

1465 {
1466  //================================================ Release reboxing pointers
1467  if ( this->originalBounds.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->originalBounds.size() ); iter++ ) { delete[] this->originalBounds.at(iter); } }
1468  if ( this->reboxedBounds.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->reboxedBounds.size() ); iter++ ) { delete[] this->reboxedBounds.at(iter); } }
1469  if ( this->manipulatedMaps.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->manipulatedMaps.size() ); iter++ ) { delete[] this->manipulatedMaps.at(iter); } }
1470 
1471  //================================================ Clear vectors
1472  this->enLevs.clear ( );
1473  this->trSigm.clear ( );
1474  this->rotFun.clear ( );
1475 
1476  //================================================ Delete symmetry axes memory
1477  if ( this->RecomSymAxes.size() > 0 )
1478  {
1479  for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->RecomSymAxes.size() ); iter++ )
1480  {
1481  delete[] this->RecomSymAxes.at(iter);
1482  }
1483  this->RecomSymAxes.clear ( );
1484  }
1485 
1486  //================================================ Done
1487 
1488 }

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 2428 of file ProSHADE.cpp.

2429 {
2430  //================================================ Done
2431  return ( this->allCSymAxes );
2432 
2433 }

◆ 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 2310 of file ProSHADE.cpp.

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

◆ 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 2535 of file ProSHADE.cpp.

2536 {
2537  //================================================ Sanity check
2538  if ( this->eulerAngles.size() != 3 )
2539  {
2540  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" );
2541  return ( std::vector< proshade_double > ( ) );
2542  }
2543 
2544  //================================================ Return required value
2545  return ( this->eulerAngles );
2546 
2547 }

◆ 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 2497 of file ProSHADE.cpp.

2498 {
2499  //================================================ Return the value
2500  return ( this->manipulatedMaps.at(strNo)[mapIndex] );
2501 }

◆ 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 2370 of file ProSHADE.cpp.

2371 {
2372  //================================================ Return the value
2373  return ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) );
2374 }

◆ 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 2340 of file ProSHADE.cpp.

2341 {
2342  //================================================ Return the value
2343  return ( this->noStructures );
2344 }

◆ 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 2360 of file ProSHADE.cpp.

2361 {
2362  //================================================ Return the value
2363  return ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) );
2364 }

◆ 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 2553 of file ProSHADE.cpp.

2554 {
2555  //================================================ Sanity check
2556  if ( this->eulerAngles.size() != 3 )
2557  {
2558  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" );
2559  return ( std::vector< proshade_double > ( ) );
2560  }
2561 
2562  //================================================ Obtain the optimal rotation matrix
2563  proshade_double* rotMat = new proshade_double[9];
2564  ProSHADE_internal_misc::checkMemoryAllocation ( rotMat, __FILE__, __LINE__, __func__ );
2565  ProSHADE_internal_maths::getRotationMatrixFromEulerZXZAngles ( this->eulerAngles.at(0), this->eulerAngles.at(1), this->eulerAngles.at(2), rotMat );
2566 
2567  //================================================ Copy to the output variable
2568  std::vector< proshade_double > ret;
2569  for ( proshade_unsign iter = 0; iter < 9; iter++ ) { ProSHADE_internal_misc::addToDoubleVector ( &ret, rotMat[iter] ); }
2570 
2571  //================================================ Release the memory
2572  delete[] rotMat;
2573 
2574  //================================================ Return required value
2575  return ( ret );
2576 
2577 }

◆ 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 2439 of file ProSHADE.cpp.

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

◆ 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 2607 of file ProSHADE.cpp.

2608 {
2609  //================================================ Sanity check
2610  if ( this->overlayTranslation.size() != 3 )
2611  {
2612  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" );
2613  return ( std::vector< proshade_double > ( ) );
2614  }
2615 
2616  //================================================ Return required value
2617  return ( this->overlayTranslation );
2618 
2619 }

◆ 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 2467 of file ProSHADE.cpp.

2468 {
2469  //================================================ Sanity checks
2470  if ( noStructures <= strNo )
2471  {
2472  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested bounds for structure index which does not exist. Returning empty vector.", "WB00041" );
2473  return ( std::vector< proshade_signed > ( ) );
2474  }
2475 
2476  //================================================ Initialise local variables
2477  std::vector< proshade_signed > ret;
2478 
2479  //================================================ Input the axis data as strings
2480  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[0] );
2481  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[1] );
2482  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[2] );
2483  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[3] );
2484  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[4] );
2485  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[5] );
2486 
2487  //================================================ Done
2488  return ( ret );
2489 }

◆ 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 2330 of file ProSHADE.cpp.

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

◆ 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 2381 of file ProSHADE.cpp.

2382 {
2383  //================================================ Sanity checks
2384  if ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) <= axisNo )
2385  {
2386  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested symmetry index does not exist. Returning empty vector.", "WS00039" );
2387  return ( std::vector< std::string > ( ) );
2388  }
2389 
2390  //================================================ Initialise local variables
2391  std::vector< std::string > ret;
2392 
2393  //================================================ Input the axis data as strings
2394  std::stringstream ssHlp;
2395  ssHlp << this->RecomSymAxes.at(axisNo)[0];
2396  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2397  ssHlp.str ( "" );
2398 
2399  ssHlp << this->RecomSymAxes.at(axisNo)[1];
2400  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2401  ssHlp.str ( "" );
2402 
2403  ssHlp << this->RecomSymAxes.at(axisNo)[2];
2404  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2405  ssHlp.str ( "" );
2406 
2407  ssHlp << this->RecomSymAxes.at(axisNo)[3];
2408  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2409  ssHlp.str ( "" );
2410 
2411  ssHlp << this->RecomSymAxes.at(axisNo)[4];
2412  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2413  ssHlp.str ( "" );
2414 
2415  ssHlp << this->RecomSymAxes.at(axisNo)[5];
2416  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2417  ssHlp.str ( "" );
2418 
2419  //================================================ Done
2420  return ( ret );
2421 
2422 }

◆ 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 1504 of file ProSHADE.cpp.

1505 {
1506  //================================================ Return the value
1507  return ( this->symRecommFold );
1508 }

◆ 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 1494 of file ProSHADE.cpp.

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

◆ 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 2320 of file ProSHADE.cpp.

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

◆ 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 2583 of file ProSHADE.cpp.

2584 {
2585  //================================================ Sanity check
2586  if ( this->coordRotationCentre.size() != 3 )
2587  {
2588  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" );
2589  return ( std::vector< proshade_double > ( ) );
2590  }
2591 
2592  //================================================ Create return variable with negative values of the internal varariable
2593  std::vector < proshade_double > ret;
2594  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(0) );
2595  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(1) );
2596  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(2) );
2597 
2598  //================================================ Return required value
2599  return ( ret );
2600 
2601 }

◆ getVerbose()

proshade_signed ProSHADE_run::getVerbose ( void  )

This function returns the verbose value.

Parameters
[in]verboseHow loud the run should be?

Definition at line 2350 of file ProSHADE.cpp.

2351 {
2352  //================================================ Return the value
2353  return ( this->verbose );
2354 }

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:188
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:92
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:95
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