#include <stdio.h>
#include "ccp4_unitcell.h"
#include "cvecmat.h"
Functions | |
double | ccp4uc_frac_orth_mat (const double cell[6], const int ncode, double ro[3][3], double rf[3][3]) |
double | ccp4uc_calc_rcell (const double cell[6], double rcell[6]) |
void | ccp4uc_orth_to_frac (const double rf[3][3], const double xo[3], double xf[3]) |
void | ccp4uc_frac_to_orth (const double ro[3][3], const double xf[3], double xo[3]) |
void | ccp4uc_orthu_to_fracu (const double rf[3][3], const double uo[6], double uf[6]) |
void | ccp4uc_fracu_to_orthu (const double ro[3][3], const double uf[6], double uo[6]) |
double | ccp4uc_calc_cell_volume (const double cell[6]) |
int | ccp4uc_cells_differ (const double cell1[6], const double cell2[6], const double tolerance) |
int | ccp4uc_is_rhombohedral (const float cell[6], const float tolerance) |
int | ccp4uc_is_hexagonal (const float cell[6], const float tolerance) |
double ccp4uc_calc_cell_volume | ( | const double | cell[6] | ) |
Calculate cell volume from cell parameters.
[in] | cell | direct space cell parameters |
Referenced by ccp4uc_calc_rcell(), and ccp4uc_cells_differ().
double ccp4uc_calc_rcell | ( | const double | cell[6], | |
double | rcell[6] | |||
) |
From input cell, find dimensions of reciprocal cell.
[in] | cell | direct space unit cell parameters. |
[out] | rcell | reciprocal space unit cell parameters. |
References ccp4uc_calc_cell_volume().
int ccp4uc_cells_differ | ( | const double | cell1[6], | |
const double | cell2[6], | |||
const double | tolerance | |||
) |
Check cells agree within tolerance.
[in] | cell1 | Cell parameters of first cell. |
[in] | cell2 | Cell parameters of second cell. |
[in] | tolerance | A tolerance for agreement. |
References ccp4_liberr_verbosity(), and ccp4uc_calc_cell_volume().
double ccp4uc_frac_orth_mat | ( | const double | cell[6], | |
const int | ncode, | |||
double | ro[3][3], | |||
double | rf[3][3] | |||
) |
From input cell and orthogonalisation code, find orthogonalisation and fractionalisation matrices.
[in] | cell | unit cell parameters |
[in] | ncode | orthogonalisation code:
|
[out] | ro | orthogonalization matrix |
[out] | rf | fractionalisation matrix |
References invert3matrix().
void ccp4uc_frac_to_orth | ( | const double | ro[3][3], | |
const double | xf[3], | |||
double | xo[3] | |||
) |
Convert fractional to orthogonal coordinates.
[in] | ro | orthogonalization matrix |
[in] | xf | fractional coordinates |
[out] | xo | orthogonal coordinates |
void ccp4uc_fracu_to_orthu | ( | const double | ro[3][3], | |
const double | uf[6], | |||
double | uo[6] | |||
) |
Convert fractional to orthogonal u matrix.
[in] | ro | orthogonalization matrix |
[in] | uf | fractional u matrix |
[out] | uo | orthogonal u matrix |
References ccp4_3matmul().
int ccp4uc_is_hexagonal | ( | const float | cell[6], | |
const float | tolerance | |||
) |
Check if cell parameters conform to a hexagonal setting.
[in] | cell | Cell parameters. Angles are assumed to be in degrees. |
[in] | tolerance | A tolerance for agreement. |
Referenced by ccp4spg_check_symm_cell().
int ccp4uc_is_rhombohedral | ( | const float | cell[6], | |
const float | tolerance | |||
) |
Check if cell parameters conform to a rhombohedral setting.
[in] | cell | Cell parameters. Angles are assumed to be in degrees. |
[in] | tolerance | A tolerance for agreement. |
Referenced by ccp4spg_check_symm_cell().
void ccp4uc_orth_to_frac | ( | const double | rf[3][3], | |
const double | xo[3], | |||
double | xf[3] | |||
) |
Convert orthogonal to fractional coordinates. Translation only if deliberate origin shift - does this ever happen? Leave it to the application.
[in] | rf | fractionalisation matrix |
[in] | xo | orthogonal coordinates |
[out] | xf | fractional coordinates |
void ccp4uc_orthu_to_fracu | ( | const double | rf[3][3], | |
const double | uo[6], | |||
double | uf[6] | |||
) |
Convert orthogonal to fractional u matrix.
[in] | rf | fractionalisation matrix |
[in] | uo | orthogonal u matrix |
[out] | uf | fractional u matrix |
References ccp4_3matmul().