BRL-CAD
defines.h File Reference
#include "common.h"
#include <stddef.h>
#include <sys/types.h>
Include dependency graph for defines.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define BRLCAD_OK   0
 
#define BRLCAD_ERROR   1
 
#define BU_IGNORE(_parm)   (void)(_parm)
 
#define BU_DIR_SEPARATOR   '/'
 
#define MAXPATHLEN   1024
 
#define BU_PATH_SEPARATOR   ':'
 
#define bu_cpp_str(s)   # s
 
#define bu_cpp_xstr(s)   bu_cpp_str(s)
 
#define bu_cpp_glue(a, b)   a ## b
 
#define bu_cpp_xglue(a, b)   bu_cpp_glue(a, b)
 
#define BU_FLSTR   __FILE__ ":" bu_cpp_xstr(__LINE__)
 
#define _BU_ATTR_PRINTF12   __attribute__ ((__format__ (__printf__, 1, 2)))
 
#define _BU_ATTR_PRINTF23   __attribute__ ((__format__ (__printf__, 2, 3)))
 
#define _BU_ATTR_SCANF23   __attribute__ ((__format__ (__scanf__, 2, 3)))
 
#define _BU_ATTR_NORETURN   __attribute__ ((__noreturn__))
 
#define _BU_ATTR_ALWAYS_INLINE   __attribute__ ((always_inline))
 
#define BU_FORTRAN(lc, uc)   lc ## _
 
#define BU_ASSERT(_equation)
 
#define BU_ASSERT_PTR(_lhs, _relation, _rhs)
 
#define BU_ASSERT_LONG(_lhs, _relation, _rhs)
 
#define BU_ASSERT_SIZE_T(_lhs, _relation, _rhs)
 
#define BU_ASSERT_SSIZE_T(_lhs, _relation, _rhs)
 
#define BU_ASSERT_DOUBLE(_lhs, _relation, _rhs)
 
#define MAX_FASTF   1.0e73 /* Very close to the largest number */
 
#define SQRT_MAX_FASTF   1.0e36 /* This squared just avoids overflow */
 
#define SMALL_FASTF   1.0e-77 /* Anything smaller is zero */
 
#define SQRT_SMALL_FASTF   1.0e-39 /* This squared gives zero */
 
#define SMALL   SQRT_SMALL_FASTF
 

Typedefs

typedef double fastf_t
 

Detailed Description

Commonly used definitions for the BRL-CAD Utility Library, LIBBU.

The two letters "BU" stand for "BRL-CAD" and "Utility". This library provides several layers of low-level utility routines, providing features that make cross-platform coding easier.

Parallel processing support: threads, semaphores, parallel-malloc. Consolidated logging support: bu_log(), bu_exit(), and bu_bomb().

The intention is that these routines are general extensions to the data types offered by the C language itself, and to the basic C runtime support provided by the system LIBC. All routines in LIBBU are designed to be "parallel-safe" (sometimes called "mp-safe" or "thread-safe" if parallelism is via threading) to greatly ease code development for multiprocessor systems.

All of the data types provided by this library are defined in bu.h; none of the routines in this library will depend on data types defined in other BRL-CAD header files, such as vmath.h. Look for those routines in LIBBN.

All truly fatal errors detected by the library use bu_bomb() to exit with a status of 12. The LIBBU variants of system calls (e.g., bu_malloc()) do not return to the caller (unless there's a bomb hook defined) unless they succeed, thus sparing the programmer from constantly having to check for NULL return codes.

Definition in file defines.h.

Macro Definition Documentation

#define BRLCAD_OK   0

Definition at line 71 of file defines.h.

Referenced by above_squish(), below_squish(), bu_binstr_to_hexstr(), bu_cmd(), bu_cmdhist_add(), bu_cmdhist_curr(), bu_cmdhist_history(), bu_cmdhist_next(), bu_cmdhist_prev(), bu_hexstr_to_binstr(), Bu_Init(), bu_observer_cmd(), bu_structparse_argv(), c_above(), c_attr(), c_below(), c_bool(), c_closeparen(), c_depth(), c_iname(), c_maxdepth(), c_mindepth(), c_name(), c_nnodes(), c_not(), c_objparam(), c_openparen(), c_or(), c_path(), c_print(), c_regex_common(), c_stdattr(), c_type(), cho_cmd(), constraint_eval(), constraint_get(), constraint_help(), constraint_set(), constraint_show(), db_search_form_plan(), dm_draw_labels(), dmo_cmd(), fb_close_existing(), fb_read_fd(), fb_write_fp(), fbo_cell_tcl(), fbo_clear_tcl(), fbo_close_tcl(), fbo_cmd(), fbo_configure_tcl(), fbo_cursor_tcl(), fbo_flush_tcl(), fbo_getcursor_tcl(), fbo_getheight_tcl(), fbo_getsize_tcl(), fbo_getwidth_tcl(), Fbo_Init(), fbo_listen_tcl(), fbo_open_tcl(), fbo_pixel_tcl(), fbo_rect_tcl(), fbo_tcllist2color(), find_create(), ged_constraint(), ged_edarb(), ged_fb2pix(), ged_pix2fb(), not_squish(), observer_attach(), observer_detach(), observer_show(), or_squish(), paren_squish(), rt_arbn_adjust(), rt_arbn_get(), rt_ars_adjust(), rt_ars_get(), rt_binunif_get(), rt_bot_adjust(), rt_bot_form(), rt_bot_get(), rt_cline_adjust(), rt_cline_form(), rt_cline_get(), rt_comb_adjust(), rt_comb_form(), rt_comb_get(), rt_dsp_get(), rt_ebm_adjust(), rt_ebm_get(), rt_extrude_adjust(), rt_extrude_form(), rt_extrude_get(), rt_generic_form(), rt_generic_get(), rt_metaball_adjust(), rt_nmg_adjust(), rt_nmg_get(), rt_nurb_adjust(), rt_nurb_get(), rt_pipe_get(), rt_sketch_adjust(), rt_sketch_form(), rt_sketch_get(), tcl_bu_brlcad_data(), tcl_bu_brlcad_dir(), tcl_bu_brlcad_root(), tcl_bu_get_value_by_keyword(), tcl_bu_hsv_to_rgb(), tcl_bu_mem_barriercheck(), tcl_bu_prmem(), tcl_bu_rgb_to_hsv(), tcl_bu_units_conversion(), wdb_import_from_path2(), and yankexpr().

#define BRLCAD_ERROR   1

Definition at line 72 of file defines.h.

Referenced by above_squish(), below_squish(), bu_binstr_to_hexstr(), bu_cmd(), bu_cmdhist_add(), bu_cmdhist_curr(), bu_cmdhist_history(), bu_cmdhist_next(), bu_cmdhist_prev(), bu_hexstr_to_binstr(), bu_observer_cmd(), bu_structparse_argv(), c_regex_common(), cho_cmd(), constraint_eval(), constraint_get(), constraint_help(), constraint_set(), constraint_show(), dm_draw_labels(), dmo_cmd(), f_objparam(), fb_close_existing(), fb_write_fp(), fbo_cell_tcl(), fbo_clear_tcl(), fbo_close_tcl(), fbo_cmd(), fbo_configure_tcl(), fbo_cursor_tcl(), fbo_flush_tcl(), fbo_getcursor_tcl(), fbo_getheight_tcl(), fbo_getsize_tcl(), fbo_getwidth_tcl(), fbo_listen_tcl(), fbo_open_tcl(), fbo_pixel_tcl(), fbo_rect_tcl(), fbo_refresh_tcl(), fbo_tcllist2color(), find_create(), ged_pscale(), get_diff_components(), not_squish(), observer_attach(), observer_detach(), observer_show(), or_squish(), paren_squish(), rt_arbn_adjust(), rt_arbn_get(), rt_ars_adjust(), rt_ars_get(), rt_binunif_adjust(), rt_binunif_get(), rt_bot_adjust(), rt_bot_get(), rt_cline_adjust(), rt_cline_get(), rt_comb_adjust(), rt_comb_get(), rt_dsp_adjust(), rt_dsp_get(), rt_ebm_adjust(), rt_ebm_get(), rt_extrude_adjust(), rt_extrude_get(), rt_generic_adjust(), rt_generic_form(), rt_generic_get(), rt_metaball_adjust(), rt_nmg_adjust(), rt_nmg_get(), rt_nurb_adjust(), rt_nurb_get(), rt_pipe_adjust(), rt_pipe_get(), rt_sketch_adjust(), rt_sketch_get(), tcl_bu_brlcad_data(), tcl_bu_brlcad_dir(), tcl_bu_brlcad_root(), tcl_bu_get_value_by_keyword(), tcl_bu_hsv_to_rgb(), tcl_bu_mem_barriercheck(), tcl_bu_prmem(), tcl_bu_rgb_to_hsv(), tcl_bu_units_conversion(), wdb_import_from_path2(), and yankexpr().

#define BU_IGNORE (   _parm)    (void)(_parm)

BU_IGNORE provides a common mechanism for innocuously ignoring a parameter that is sometimes used and sometimes not. It should "practically" result in nothing of concern happening. It's commonly used by macros that disable functionality based on compilation settings (e.g., BU_ASSERT()) and shouldn't normally need to be used directly by code.

Definition at line 82 of file defines.h.

#define BU_DIR_SEPARATOR   '/'

the default directory separator character

Definition at line 97 of file defines.h.

Referenced by _brlcad_data(), bu_argv0_full_path(), bu_basename(), bu_dirname(), bu_temp_file(), bu_whereis(), bu_which(), find_path(), get_file_data(), main(), and tclcad_auto_path().

#define MAXPATHLEN   1024
#define BU_PATH_SEPARATOR   ':'

set to the path list separator character

Definition at line 127 of file defines.h.

Referenced by bu_whereis(), bu_which(), and tclcad_auto_path().

#define bu_cpp_str (   s)    # s

Definition at line 138 of file defines.h.

#define bu_cpp_xstr (   s)    bu_cpp_str(s)

Definition at line 139 of file defines.h.

#define bu_cpp_glue (   a,
 
)    a ## b

Definition at line 140 of file defines.h.

#define bu_cpp_xglue (   a,
 
)    bu_cpp_glue(a, b)

Definition at line 141 of file defines.h.

#define BU_FLSTR   __FILE__ ":" bu_cpp_xstr(__LINE__)

Macro for getting a concatenated string of the current file and line number. Produces something of the form: "filename.c"":""1234"

Definition at line 142 of file defines.h.

Referenced by bu_shader_to_list(), db_alloc_directory_block(), find_cmd_line_obj(), read_units_double(), rt_memclose(), and terminate_check().

#define _BU_ATTR_PRINTF12   __attribute__ ((__format__ (__printf__, 1, 2)))

shorthand declaration of a printf-style functions

Definition at line 149 of file defines.h.

#define _BU_ATTR_PRINTF23   __attribute__ ((__format__ (__printf__, 2, 3)))

Definition at line 152 of file defines.h.

#define _BU_ATTR_SCANF23   __attribute__ ((__format__ (__scanf__, 2, 3)))

Definition at line 155 of file defines.h.

#define _BU_ATTR_NORETURN   __attribute__ ((__noreturn__))

shorthand declaration of a function that doesn't return

Definition at line 161 of file defines.h.

#define _BU_ATTR_ALWAYS_INLINE   __attribute__ ((always_inline))

shorthand declaration of a function that should always be inline

Definition at line 166 of file defines.h.

#define BU_FORTRAN (   lc,
  uc 
)    lc ## _

If we're compiling strict, turn off "format string vs arguments" checks - BRL-CAD customizes the arguments to some of these function types (adding bu_vls support) and that is a problem with strict checking. This macro is used to take the 'C' function name, and convert it at compile time to the FORTRAN calling convention.

Lower case, with a trailing underscore.

Definition at line 191 of file defines.h.

#define BU_ASSERT (   _equation)
Value:
if (UNLIKELY(!(_equation))) { \
bu_log("BU_ASSERT(" #_equation ") failed, file %s, line %d\n", \
__FILE__, __LINE__); \
bu_bomb("BU_ASSERT failure\n"); \
}
void bu_log(const char *,...) _BU_ATTR_PRINTF12
Definition: log.c:176
void bu_bomb(const char *str) _BU_ATTR_NORETURN
Definition: bomb.c:91
#define UNLIKELY(expression)
Definition: common.h:282

Quick and easy macros to generate an informative error message and abort execution if the specified condition does not hold true.

Definition at line 216 of file defines.h.

Referenced by bn_tabdata_mk_linear_filter(), bu_getcwd(), bu_realloc(), bu_struct_export(), bu_struct_import(), bu_struct_print(), bu_structparse_argv(), bu_vls_struct_item(), bu_vls_struct_print(), bu_vls_struct_print2(), bu_vsscanf(), edit(), edit_arg_expand_meta(), edit_arg_to_apparent_coord(), edit_cmd_consolidate(), edit_cmd_expand_vectors(), edit_str_to_arg(), ged_edit(), ged_killtree(), getRegionByName(), interrupt_restore_signal(), interrupt_suspend_signal(), mk_brep(), parse_struct_lookup(), rt_binunif_make(), rt_ct_piececount(), rt_cut_extend(), rt_dsp_make(), rt_ebm_make(), rt_gen_elliptical_grid(), rt_generic_make(), rt_revolve_make(), and XGLUE().

#define BU_ASSERT_PTR (   _lhs,
  _relation,
  _rhs 
)
Value:
if (UNLIKELY(!((_lhs) _relation (_rhs)))) { \
bu_log("BU_ASSERT_PTR(" #_lhs #_relation #_rhs ") failed, lhs=%p, rhs=%p, file %s, line %d\n", \
(void *)(_lhs), (void *)(_rhs), \
__FILE__, __LINE__); \
bu_bomb("BU_ASSERT_PTR failure\n"); \
}
void bu_log(const char *,...) _BU_ATTR_PRINTF12
Definition: log.c:176
void bu_bomb(const char *str) _BU_ATTR_NORETURN
Definition: bomb.c:91
#define UNLIKELY(expression)
Definition: common.h:282

Quick and easy macros to generate an informative error message and abort execution if the specified condition does not hold true.

Definition at line 227 of file defines.h.

Referenced by bu_open_mapped_file_with_path(), combmem_get(), db5_export_object3(), db5_import_attributes(), db_alloc_directory_block(), db_ck_tree(), db_tree_flatten_describe(), edit_arg_to_apparent_coord(), edit_cmd_sduplicate(), edit_translate(), edit_translate_add_cl_args(), ged_make_pnts(), rt_cell_n_on_ray(), rt_comb_export5(), rt_comb_import5(), rt_ehy_tess(), rt_hyp_tess(), rt_prep_parallel(), rt_shootray(), rt_shootray_bundle(), to_open_tcl(), and to_rt_gettrees_application().

#define BU_ASSERT_LONG (   _lhs,
  _relation,
  _rhs 
)
Value:
if (UNLIKELY(!((_lhs) _relation (_rhs)))) { \
bu_log("BU_ASSERT_LONG(" #_lhs #_relation #_rhs ") failed, lhs=%ld, rhs=%ld, file %s, line %d\n", \
(long)(_lhs), (long)(_rhs), \
__FILE__, __LINE__); \
bu_bomb("BU_ASSERT_LONG failure\n"); \
}
void bu_log(const char *,...) _BU_ATTR_PRINTF12
Definition: log.c:176
void bu_bomb(const char *str) _BU_ATTR_NORETURN
Definition: bomb.c:91
#define UNLIKELY(expression)
Definition: common.h:282

Quick and easy macros to generate an informative error message and abort execution if the specified condition does not hold true.

Definition at line 240 of file defines.h.

Referenced by bu_struct_import(), combmem_get(), db5_export_attributes(), db5_export_object3(), db5_import_attributes(), db5_put_color_table(), db5_realloc(), db5_replace_attributes(), db5_scan(), db5_update_attributes(), db_put_external5(), db_tree_flatten_describe(), db_wrap_v5_external(), db_zapper(), mk_write_color_table(), rt_arb_import5(), rt_arbn_import5(), rt_bot_vertex_fuse(), rt_cline_import5(), rt_db_external5_to_internal5(), rt_db_get_internal5(), rt_db_put_internal5(), rt_dsp_import5(), rt_ehy_import5(), rt_ell_import5(), rt_epa_import5(), rt_eto_import5(), rt_grp_import5(), rt_hlf_import5(), rt_hrt_import5(), rt_hyp_import5(), rt_init_resource(), rt_joint_import5(), rt_part_import5(), rt_pipe_import5(), rt_rhc_import5(), rt_rpc_import5(), rt_submodel_shot(), rt_superell_import5(), rt_tgc_import5(), rt_tor_import5(), rt_xxx_import5(), and voxelize().

#define BU_ASSERT_SIZE_T (   _lhs,
  _relation,
  _rhs 
)
Value:
if (UNLIKELY(!((_lhs) _relation (_rhs)))) { \
bu_log("BU_ASSERT_SIZE_T(" #_lhs #_relation #_rhs ") failed, lhs=%zd, rhs=%zd, file %s, line %d\n", \
(size_t)(_lhs), (size_t)(_rhs), \
__FILE__, __LINE__); \
bu_bomb("BU_ASSERT_SIZE_T failure\n"); \
}
void bu_log(const char *,...) _BU_ATTR_PRINTF12
Definition: log.c:176
void bu_bomb(const char *str) _BU_ATTR_NORETURN
Definition: bomb.c:91
#define UNLIKELY(expression)
Definition: common.h:282

Definition at line 253 of file defines.h.

Referenced by _ged_combadd2(), _ged_print_node(), db5_make_free_object(), db5_make_free_object_hdr(), db_full_path_search(), db_identical_full_paths(), db_mkgift_tree(), db_path_to_string(), db_string_to_path(), ged_get_comb(), mk_tree_gift(), rt_comb_export4(), rt_comb_export5(), rt_comb_import5(), rt_pg_to_bot(), tables_new(), and write_comb().

#define BU_ASSERT_SSIZE_T (   _lhs,
  _relation,
  _rhs 
)
Value:
if (UNLIKELY(!((_lhs) _relation (_rhs)))) { \
bu_log("BU_ASSERT_SSIZE_T(" #_lhs #_relation #_rhs ") failed, lhs=%zd, rhs=%zd, file %s, line %d\n", \
(ssize_t)(_lhs), (ssize_t)(_rhs), \
__FILE__, __LINE__); \
bu_bomb("BU_ASSERT_SSIZE_T failure\n"); \
}
ptrdiff_t ssize_t
Definition: common.h:119
void bu_log(const char *,...) _BU_ATTR_PRINTF12
Definition: log.c:176
void bu_bomb(const char *str) _BU_ATTR_NORETURN
Definition: bomb.c:91
#define UNLIKELY(expression)
Definition: common.h:282

Definition at line 266 of file defines.h.

Referenced by rt_comb_v5_serialize().

#define BU_ASSERT_DOUBLE (   _lhs,
  _relation,
  _rhs 
)
Value:
if (UNLIKELY(!((_lhs) _relation (_rhs)))) { \
bu_log("BU_ASSERT_DOUBLE(" #_lhs #_relation #_rhs ") failed, lhs=%lf, rhs=%lf, file %s, line %d\n", \
(double)(_lhs), (double)(_rhs), \
__FILE__, __LINE__); \
bu_bomb("BU_ASSERT_DOUBLE failure\n"); \
}
void bu_log(const char *,...) _BU_ATTR_PRINTF12
Definition: log.c:176
void bu_bomb(const char *str) _BU_ATTR_NORETURN
Definition: bomb.c:91
#define UNLIKELY(expression)
Definition: common.h:282

Quick and easy macros to generate an informative error message and abort execution if the specified condition does not hold true.

Example: BU_ASSERT_LONG(j+7, <, 42);

Definition at line 279 of file defines.h.

Referenced by rt_shootray(), and rt_submodel_a_hit().

#define MAX_FASTF   1.0e73 /* Very close to the largest number */

Definitions about limits of floating point representation Eventually, should be tied to type of hardware (IEEE, IBM, Cray) used to implement the fastf_t type.

MAX_FASTF - Very close to the largest value that can be held by a fastf_t without overflow. Typically specified as an integer power of ten, to make the value easy to spot when printed. TODO: macro function syntax instead of constant (DEPRECATED)

SQRT_MAX_FASTF - sqrt(MAX_FASTF), or slightly smaller. Any number larger than this, if squared, can be expected to * produce an overflow. TODO: macro function syntax instead of constant (DEPRECATED)

SMALL_FASTF - Very close to the smallest value that can be represented while still being greater than zero. Any number smaller than this (and non-negative) can be considered to be zero; dividing by such a number can be expected to produce a divide-by-zero error. All divisors should be checked against this value before actual division is performed. TODO: macro function syntax instead of constant (DEPRECATED)

SQRT_SMALL_FASTF - sqrt(SMALL_FASTF), or slightly larger. The value of this is quite a lot larger than that of SMALL_FASTF. Any number smaller than this, when squared, can be expected to produce a zero result. TODO: macro function syntax instead of constant (DEPRECATED)

Definition at line 340 of file defines.h.

Referenced by _ged_get_obj_bounds2(), add_elements(), bn_isect_line3_line3(), bn_isect_lseg_rpp(), bn_tabdata_to_tcl(), brep_get_plane_ray(), brlcad::brep_getSurfacePoint(), Eplot(), find_closest_face(), find_metaballpt_nearest_pt(), find_pipept_nearest_pt(), ged_gqa(), grass_render(), minEdge(), nmg_calc_face_plane(), nmg_classify_pt_loop(), nmg_classify_pt_loop_new(), nmg_edge_collapse(), nmg_edge_g_fuse(), nmg_enlist_one_vu(), nmg_enlist_vu(), nmg_face_bb(), nmg_find_top_face_in_dir(), nmg_get_max_edge_inters(), nmg_insure_radial_list_is_increasing(), nmg_isect_2colinear_edge2p(), nmg_isect_2faceuse(), nmg_isect_edge2p_edge2p(), nmg_isect_line2_edge2p(), nmg_isect_line2_face2pNEW(), nmg_isect_line2_vertex2(), nmg_isect_two_ptbls(), nmg_isect_vert2p_face2p(), nmg_loop_plane_area2(), nmg_loop_plane_newell(), nmg_model_bb(), nmg_purge_unwanted_intersection_points(), nmg_region_a(), nmg_shell_a(), nmg_to_tgc(), nmg_unlist_v(), nurb_c_to_bezier(), ptbl_vsort(), recurse_dsp_bb(), rt_arb_find_e_nearest_pt2(), rt_bot_find_e_nearest_pt2(), rt_bot_find_v_nearest_pt2(), rt_bound_internal(), rt_cnurb_par_edge(), rt_ct_old_assess(), rt_extrude_shot(), rt_fastgen_vol_vol_overlap(), rt_in_rpp(), rt_revolve_shot(), rt_split_mostly_empty_cells(), rt_tgc_tess(), seg_to_vlist(), to_data_pick(), toUV(), tthrm_setup(), and vertex_neighborhood().

#define SQRT_MAX_FASTF   1.0e36 /* This squared just avoids overflow */

Definition at line 341 of file defines.h.

Referenced by bn_poly_cubic_roots().

#define SMALL_FASTF   1.0e-77 /* Anything smaller is zero */

Definition at line 342 of file defines.h.

Referenced by bn_2line3_colinear(), bn_angle_measure(), bn_coplanar(), bn_dist_line2_point2(), bn_dist_line3_pt3(), bn_dist_line_origin(), bn_dist_pt3_lseg3(), bn_distsq_line2_point2(), bn_distsq_line3_pt3(), bn_distsq_pt3_lseg3_v2(), bn_isect_2planes(), bn_isect_line3_line3(), bn_isect_line3_plane(), bn_isect_line_lseg(), bn_isect_lseg3_lseg3(), bn_isect_pt_lseg(), bn_mat_fromto(), bn_mk_plane_3pts(), bn_poly_quadratic_roots(), bu_hsv_to_rgb(), bu_rgb_to_hsv(), compute_intervals_isectline(), cut_unimonotone(), edge_can_be_decimated(), edge_hit_ray_state(), flat_render(), ged_find_polygon_area(), ged_scale(), get_pole_dist_to_face(), NurbsTools::getClosestPoint(), FittingSurface::getElementVector(), grass_render(), isect_ray_snurb_face(), main(), make_linear_surfaces(), nmg_2_vrml(), nmg_2lu_identical(), nmg_assess_eu(), nmg_brep_face(), nmg_calc_face_plane(), nmg_ck_fg(), nmg_class_ray_vs_shell(), nmg_classify_lu_lu(), nmg_classify_pt_loop_new(), nmg_compare_region_a(), nmg_compare_shell_a(), nmg_do_radial_join(), nmg_edge_g(), nmg_faces_can_be_intersected(), nmg_fu_planeeqn(), nmg_is_crack_outie(), nmg_isect_2faceuse(), nmg_isect_eu_eu(), nmg_isect_eu_fu(), nmg_isect_potcut_fu(), nmg_isect_pt_facet(), nmg_loop_is_ccw(), nmg_loop_plane_area2(), nmg_lu_reorient(), nmg_radial_build_list(), nmg_shell_coplanar_face_merge(), nmg_two_face_fuse(), nmg_vfg(), nmg_vlist_to_wire_edges(), pick_edges(), pnt_compare_2d(), project_pt(), ptbl_vsort(), record_face_hit(), rt_arbn_bbox(), rt_bot_bbox(), rt_bot_decimate(), rt_bound_internal(), rt_brep_prep(), rt_ehy_import4(), rt_ehy_import5(), rt_ell_norms(), rt_epa_import4(), rt_epa_import5(), rt_hf_shot(), rt_in_rpp(), rt_num_circular_segments(), rt_nurb_bbox(), rt_nurb_prep(), rt_pipe_tess(), rt_rec_shot(), rt_reprep(), rt_rhc_import4(), rt_rhc_import5(), rt_rpc_import4(), rt_rpc_import5(), rt_tgc_brep(), rt_tor_import4(), seg_to_vlist(), single_conversion(), tthrm_setup(), vertex_neighborhood(), vo_sca(), vo_size_cmd(), vo_zoom(), and XGLUE().

Typedef Documentation

typedef double fastf_t

fastf_t - Intended to be the fastest floating point data type on the current machine, with at least 64 bits of precision. On 16 and 32 bit machines, this is typically "double", but on 64 bit machines, it is often "float". Virtually all floating point variables (and more complicated data types, like vect_t and mat_t) are defined as fastf_t. The one exception is when a subroutine return is a floating point value; that is always declared as "double".

TODO: If used pervasively, it should eventually be possible to make fastf_t a GMP C++ type for fixed-precision computations.

Definition at line 300 of file defines.h.