source: ThirdParty/mpqc_open/src/lib/util/psi3/libpsio/get_address.cc@ 00f983

Action_Thermostats Add_AtomRandomPerturbation Add_RotateAroundBondAction Add_SelectAtomByNameAction Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_StructOpt_integration_tests AutomationFragmentation_failures Candidate_v1.6.0 Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator Combining_Subpackages Debian_Package_split Debian_package_split_molecuildergui_only Disabling_MemDebug Docu_Python_wait EmpiricalPotential_contain_HomologyGraph_documentation Enable_parallel_make_install Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph FitPartialCharges_GlobalError Fix_ChronosMutex Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion GeometryObjects Gui_displays_atomic_force_velocity IndependentFragmentGrids_IntegrationTest JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix ODR_violation_mpqc_open PartialCharges_OrthogonalSummation PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks RotateToPrincipalAxisSystem_UndoRedo StoppableMakroAction Subpackage_levmar Subpackage_vmg ThirdParty_MPQC_rebuilt_buildsystem TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps Ubuntu_1604_changes stable
Last change on this file since 00f983 was 860145, checked in by Frederik Heber <heber@…>, 8 years ago

Merge commit '0b990dfaa8c6007a996d030163a25f7f5fc8a7e7' as 'ThirdParty/mpqc_open'

  • Property mode set to 100644
File size: 858 bytes
Line 
1/*!
2** \file get_address.c
3** \ingroup (PSIO)
4*/
5
6#include <util/psi3/libpsio/psio.h>
7
8namespace psi3 {
9namespace libpsio {
10
11/*!
12** PSIO_GET_ADDRESS(): Given a starting page/offset and a shift length
13** (in bytes), return the page/offset of the next position in the file.
14** \ingroup(PSIO)
15*/
16
17psio_address psio_get_address(psio_address start, ULI shift)
18{
19 psio_address address;
20 ULI bytes_left;
21
22 bytes_left = PSIO_PAGELEN - start.offset; /* Bytes remaining on fpage */
23
24 if(shift >= bytes_left) { /* Shift to later page */
25 address.page = start.page + (shift - bytes_left)/PSIO_PAGELEN + 1;
26 address.offset = shift - bytes_left -
27 (address.page - start.page - 1)*PSIO_PAGELEN;
28 }
29 else { /* Block starts on current page */
30 address.page = start.page;
31 address.offset = start.offset + shift;
32 }
33
34 return address;
35}
36
37}
38}
Note: See TracBrowser for help on using the repository browser.