Blender V4.3
sort.c File Reference
#include <stdlib.h>
#include "BLI_utildefines.h"
#include "BLI_sort.h"

Go to the source code of this file.

Macros

#define min(a, b)   (a) < (b) ? (a) : (b)
 
#define swapcode(TYPE, parmi, parmj, n)
 
#define SWAPINIT(a, es)
 
#define swap(a, b)
 
#define vecswap(a, b, n)   if ((n) > 0) swapfunc(a, b, n, swaptype)
 
#define CMP(t, x, y)   (cmp((x), (y), (t)))
 

Functions

BLI_INLINE char * med3 (char *a, char *b, char *c, BLI_sort_cmp_t cmp, void *thunk)
 
BLI_INLINE void swapfunc (char *a, char *b, int n, int swaptype)
 
void BLI_qsort_r (void *a, size_t n, size_t es, BLI_sort_cmp_t cmp, void *thunk)
 

Macro Definition Documentation

◆ CMP

#define CMP ( t,
x,
y )   (cmp((x), (y), (t)))

Definition at line 64 of file sort.c.

Referenced by BLI_qsort_r(), and med3().

◆ min

#define min ( a,
b )   (a) < (b) ? (a) : (b)

Definition at line 32 of file sort.c.

Referenced by __anyhit__kernel_optix_local_hit(), __anyhit__kernel_optix_shadow_all_hit(), actkeys_previewrange_exec(), actkeys_viewall(), btAxisSweep3Internal< BP_FP_INT_TYPE >::addHandle(), GHOST_WindowWin32::adjustWindowRectForClosestMonitor(), AdaptiveSampling::align_samples(), PathTraceWorkGPU::alloc_integrator_soa(), area_light_spread_clamp_light(), arg_handle_python_exit_code_set(), arg_handle_threads_set(), Freestyle::OccluderSource::averageOccluderArea(), blender::gpu::backwards_program_word_scan(), bake_offset_towards_center(), bevelinside(), BKE_boundbox_init_from_minmax(), BKE_curve_bevelList_make(), BKE_displist_minmax(), BKE_editmesh_cache_calc_minmax(), BKE_fcurve_calc_range(), BKE_gpencil_data_minmax(), BKE_lattice_minmax(), BKE_mask_spline_feather_collapse_inner_loops(), BKE_mball_center_bounds(), BKE_mball_minmax(), BKE_mball_minmax_ex(), BKE_nlastrip_within_bounds(), BKE_object_evaluated_geometry_bounds(), BKE_object_minmax_empty_drawtype(), BKE_pchan_minmax(), BKE_pose_minmax(), BKE_screen_find_big_area(), BKE_tracking_marker_pattern_minmax(), blf_charcode_to_unicode_block(), BLI_qsort_r(), BLI_str_utf32_char_to_lower(), BLI_str_utf32_char_to_upper(), BLI_timecode_string_from_time_simple(), BM_face_calc_bounds_expand(), BM_face_calc_center_bounds(), BM_face_calc_center_bounds_vcos(), BM_face_uv_minmax(), bm_vert_pair_best_face_get(), bm_vert_pair_share_best_splittable_face_cb(), bmo_average_vert_facedata_exec(), bmo_collapsecon_do_layer(), Hair::Curve::bounds_grow(), Hair::Curve::bounds_grow(), Hair::Curve::bounds_grow(), box_minmax_bounds_m4(), BPy_BMElem_PySeq_As_Array(), BPy_BMElem_PySeq_As_Array_FAST(), BPy_FloatProperty(), BPy_FloatVectorProperty(), BPy_IntProperty(), BPy_IntVectorProperty(), brush_edit_init(), bsdf_D(), bsdf_hair_huang_eval(), bundle_midpoint(), BVH(), bvh_aligned_node_intersect(), bvh_unaligned_node_intersect_child(), BVHMixedSplit::BVHMixedSplit(), BVHObjectBinning::BVHObjectBinning(), calc_nurb_minmax(), calc_nurblist_bounds(), calc_ortho_extent(), calculate_collision_balls(), RenderScheduler::calculate_num_samples_per_update(), calculateCenterBound(), Hair::Curve::cardinal_keys_for_step(), Hair::Curve::cardinal_motion_keys(), blender::Bounds< T >::center(), Clamp(), blender::math::clamp(), blender::math::clamp(), blender::math::clamp(), blender::nodes::materialx::NodeItem::clamp(), clamp(), clamp(), clamp(), clamp(), clamp(), clamp(), clamp(), clamp(), clamp(), clamp(), clamp_angle(), clamp_f(), clamp_f(), blender::ed::sculpt_paint::cloth::clamp_factors(), blender::ed::sculpt_paint::color::clamp_factors(), blender::ed::sculpt_paint::filter::clamp_factors(), clamp_float_to_int(), clamp_i(), clamp_i(), blender::nodes::node_shader_map_range_cc::clamp_range(), blender::nodes::node_shader_map_range_cc::clamp_range(), clamp_v2(), clamp_v2_v2v2(), clamp_v3(), clamp_v3_v3v3(), clamp_v4(), clamp_v4_v4v4(), clamp_z(), clampis_uint(), blender::bke::pbvh::clip_ray_ortho(), clip_uv_transform_resize(), clip_uv_transform_translation(), clip_view_calculate_view_selection(), blender::nodes::node_composite_brightness_cc::cmp_node_brightcontrast_declare(), blender::nodes::node_composite_combine_hsva_cc::cmp_node_combhsva_declare(), blender::nodes::node_composite_combine_xyz_cc::cmp_node_combine_xyz_declare(), blender::nodes::node_composite_combine_rgba_cc::cmp_node_combrgba_declare(), blender::nodes::node_composite_combine_ycca_cc::cmp_node_combycca_declare(), blender::nodes::node_composite_combine_yuva_cc::cmp_node_combyuva_declare(), blender::nodes::node_composite_cornerpin_cc::cmp_node_cornerpin_declare(), blender::nodes::node_composite_vector_curves_cc::cmp_node_curve_vec_declare(), blender::nodes::node_composite_denoise_cc::cmp_node_denoise_declare(), blender::nodes::node_composite_displace_cc::cmp_node_displace_declare(), blender::nodes::node_composite_exposure_cc::cmp_node_exposure_declare(), blender::nodes::node_composite_map_uv_cc::cmp_node_map_uv_declare(), blender::nodes::node_composite_normal_cc::cmp_node_normal_declare(), blender::nodes::node_composite_separate_xyz_cc::cmp_node_separate_xyz_declare(), blender::nodes::node_composite_texture_cc::cmp_node_texture_declare(), blender::nodes::node_composite_vec_blur_cc::cmp_node_vec_blur_declare(), blender::nodes::node_composite_math_cc::MathShaderNode::compile(), blender::nodes::node_composite_mixrgb_cc::MixRGBShaderNode::compile(), blender::nodes::node_composite_rgb_curves_cc::RGBCurvesShaderNode::compile(), btConvexHullInternal::compute(), slim::compute_max_step_from_singularities(), TileManager::compute_render_tile_size(), Freestyle::ViewMapBuilder::ComputeFastRayCastingVisibility(), Freestyle::ViewMapBuilder::ComputeRayCastingVisibility(), Freestyle::ViewMapBuilder::ComputeSweepLineIntersections(), Freestyle::ViewMapBuilder::ComputeVeryFastRayCastingVisibility(), Freestyle::Grid::configure(), configure_image_spec_from_buffer(), ClampNode::constant_fold(), convexhull_aabb_fit_hull_2d(), BVHBuild::create_leaf_node(), BVHBuild::create_object_leaf_nodes(), createTransActionData(), Freestyle::crossesProscenium(), CubeTriangleIsect::CubeTriangleIsect(), cuboid_do(), curvebounds(), curvemap_minmax_curve(), curvemapping_float_to_array(), CustomData_data_dominmax(), CustomData_data_initminmax(), blender::draw::distort_remap(), distribute_grid(), draw_distortion(), blender::draw::DebugDraw::draw_matrix_as_bbox(), draw_spline_points(), DRW_culling_min_max_test(), drw_sculpt_generate_calls(), dynamic_paint_create_uv_surface_direct_cb(), dynamicPaint_createUVSurface(), ED_armature_origin_set(), ED_gizmo_arrow3d_set_ui_range(), ED_gpencil_layer_frames_select_box(), ED_markers_get_minmax(), ED_mask_selected_minmax(), ED_masklayer_frames_select_box(), ED_uvedit_center_multi(), ED_view3d_clipping_clamp_minmax(), edbm_point_normals_modal(), edge_pan_speed(), PathTraceWorkGPU::enqueue_path_iteration(), ensure_valid_specular_reflection(), Freestyle::firstIntersectionGridVisitor::examineOccluder(), fcm_envelope_evaluate(), feather_bucket_index_from_coord(), slim::flip_avoiding_line_search(), float4_to_half4_display(), float_to_half_display(), float_to_half_image(), foreach_sliced_buffer_params(), fractal_voronoi_distance_to_edge(), VolumeMeshBuilder::generate_vertices_and_quads(), blender::compositor::PlaneDistortWarpImageOperation::get_area_of_interest(), get_best_dimension(), get_bounding_bezt_index_range(), Session::get_estimated_remaining_time(), blender::animrig::get_frame_range_of_fcurves(), get_keyframe_extents(), blender::ed::space_node::get_min_max_of_nodes(), blender::io::alembic::get_min_max_time(), blender::io::alembic::get_min_max_time_ex(), get_nlastrip_extents(), RenderScheduler::get_num_samples_during_navigation(), RenderScheduler::get_num_samples_to_path_trace(), blender::nodes::node_geo_string_to_curves_cc::get_pivot_point(), Progress::get_progress(), slim::get_smallest_pos_quad_zero(), TileManager::get_tile_for_index(), blender::nodes::node_geo_input_mesh_face_is_planar_cc::PlanarFieldInput::get_varray_for_context(), Scene::get_volume_stack_size(), WorkTileScheduler::get_work(), Freestyle::Geometry::Polygon< Point >::getBBox(), DualConInputReader::getBoundingBox(), gizmo2d_xform_invoke_prepare(), gizmo_offset_from_value_constr(), gizmo_value_from_offset_constr(), blender::nodes::node_shader_math_cc::gpu_shader_math(), blender::nodes::node_sh_mix_cc::gpu_shader_mix(), blender::nodes::node_shader_mix_rgb_cc::gpu_shader_mix_rgb(), graphkeys_previewrange_exec(), grid_axis_start_and_count(), RenderScheduler::guess_display_update_interval_in_seconds_for_num_samples(), idprop_ui_data_update_float(), idprop_ui_data_update_int(), image_view_selected_exec(), IMB_colormanagement_blackbody_temperature_to_rgb_table(), Freestyle::GeomUtils::include2dSeg2dArea(), initTimeSlide(), InnerNode::InnerNode(), Freestyle::Grid::insertOccluder(), interpolate_curve_points(), intersect(), Freestyle::GeomUtils::intersect2dSeg2dArea(), blender::Bounds< T >::is_empty(), isect_aabb_v3(), isect_tri_tri_v3_ex(), kdtree2d_isect_tri(), kdtree2d_isect_tri_recursive(), kernel_embree_filter_occluded_local_func_impl(), kernel_embree_filter_occluded_shadow_all_func_impl(), Hair::Curve::keys_for_step(), layerDoMinMax_mloop_origspace(), layerDoMinMax_mloopcol(), layerDoMinMax_propcol(), layerInitMinMax_mloop_origspace(), layerInitMinMax_mloopcol(), layerInitMinMax_propcol(), layerInitMinMax_propfloat2(), LightTreeEmitter::LightTreeEmitter(), line_rect_clip(), VDBImageLoader::load_metadata(), GHOST_Wintab::loadWintab(), lookup_table_read(), lookup_table_read_2D(), lookup_table_read_3D(), markers_selectkeys_between(), markers_selectkeys_between(), match_texture_space_exec(), mathutils_rna_vector_set(), maximum_common_subgraph_internal(), merge(), merge(), blender::bke::mesh_init_origspace(), blender::nodes::decl::VectorBuilder::min(), min(), min(), min(), min(), min(), min(), min(), min4(), min4(), blender::math::min_max(), blender::math::min_max(), minmax_v2v2_v2(), minmax_v3v3_v3(), minmax_v4v4_v4(), blender::gpu::GLTexture::mip_range_set(), blender::gpu::MTLTexture::mip_range_set(), blender::gpu::VKTexture::mip_range_set(), PointCloud::Point::motion_key(), motion_triangle_compute_info(), Mesh::Triangle::motion_verts(), mouse_select_eval_buffer(), nlaedit_previewrange_exec(), blender::nodes::node_fn_compare_cc::node_declare(), blender::nodes::node_fn_random_value_cc::node_declare(), blender::nodes::node_fn_slice_string_cc::node_declare(), blender::nodes::node_fn_value_to_string_cc::node_declare(), blender::nodes::node_geo_curve_endpoint_selection_cc::node_declare(), blender::nodes::node_geo_curve_fillet_cc::node_declare(), blender::nodes::node_geo_curve_sample_cc::node_declare(), blender::nodes::node_geo_curve_topology_points_of_curve_cc::node_declare(), blender::nodes::node_geo_curve_trim_cc::node_declare(), blender::nodes::node_geo_distribute_points_in_grid_cc::node_declare(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_declare(), blender::nodes::node_geo_distribute_points_on_faces_cc::node_declare(), blender::nodes::node_geo_duplicate_elements_cc::node_declare(), blender::nodes::node_geo_evaluate_at_index_cc::node_declare(), blender::nodes::node_geo_grid_to_mesh_cc::node_declare(), blender::nodes::node_geo_image_info_cc::node_declare(), blender::nodes::node_geo_image_texture_cc::node_declare(), blender::nodes::node_geo_index_switch_cc::node_declare(), blender::nodes::node_geo_mesh_primitive_cone_cc::node_declare(), blender::nodes::node_geo_mesh_primitive_cube_cc::node_declare(), blender::nodes::node_geo_mesh_topology_corners_of_edge_cc::node_declare(), blender::nodes::node_geo_mesh_topology_corners_of_face_cc::node_declare(), blender::nodes::node_geo_mesh_topology_corners_of_vertex_cc::node_declare(), blender::nodes::node_geo_mesh_topology_edges_of_vertex_cc::node_declare(), blender::nodes::node_geo_points_cc::node_declare(), blender::nodes::node_geo_repeat_cc::repeat_input_node::node_declare(), blender::nodes::node_geo_set_curve_radius_cc::node_declare(), blender::nodes::node_geo_set_material_index_cc::node_declare(), blender::nodes::node_geo_set_spline_resolution_cc::node_declare(), blender::nodes::node_geo_volume_to_mesh_cc::node_declare(), blender::nodes::node_shader_ambient_occlusion_cc::node_declare(), blender::nodes::node_shader_bsdf_hair_principled_cc::node_declare(), blender::nodes::node_shader_bsdf_metallic_cc::node_declare(), blender::nodes::node_shader_bsdf_principled_cc::node_declare(), blender::nodes::node_shader_bump_cc::node_declare(), blender::nodes::node_shader_mapping_cc::node_declare(), blender::nodes::node_shader_normal_cc::node_declare(), blender::nodes::node_shader_subsurface_scattering_cc::node_declare(), blender::nodes::node_shader_vector_transform_cc::node_declare(), NODE_DEFINE(), blender::nodes::node_geo_attribute_statistic_cc::node_geo_exec(), blender::ed::space_node::node_group_make_from_nodes(), blender::ed::space_node::node_group_make_insert_selected(), node_mix_dark(), node_shader_gpu_tex_mapping(), object_motion_steps(), blender::ed::object::object_origin_set_exec(), blender::draw::overlay::Fluids::object_sync(), blender::ed::object::object_warp_transverts(), blender::ed::object::object_warp_transverts_minmax_x(), blender::ed::object::object_warp_verts_exec(), Freestyle::BoxGrid::OccluderData::OccluderData(), blender::draw::overhang_remap(), Freestyle::GeomUtils::overlapTriangleBox(), OVERLAY_volume_extra(), blender::Bounds< T >::pad(), PAINT_OT_vertex_color_brightness_contrast(), parse_int_clamp(), parse_int_range_relative_clamp(), parse_int_range_relative_clamp_n(), parse_int_relative_clamp(), parse_int_strict_range(), particle_intersect_mesh(), particle_system_minmax(), particles_fluid_step(), path_state_continuation_probability(), blender::bke::pbvh::pbvh_bmesh_node_limit_ensure_fast(), blender::bke::pbvh::pbvh_bmesh_node_split(), pchan_culling_calc_bsphere(), PE_minmax(), point_density_sample_func(), point_density_texture_space(), project_paint_bucket_bounds(), project_paint_delayed_face_init(), prop_subscript_ass_array_slice__float_recursive(), prop_subscript_ass_array_slice__int_recursive(), psys_thread_context_init_distribute(), radial_control_invoke(), ratiod(), ratiof(), ray_aabb_intersect(), ray_triangle_intersect(), ray_triangle_intersect_self(), blender::eevee::IrradianceBake::raylists_build(), RB_shape_trimesh_update(), RE_point_density_sample(), rect_clip(), reduce_min(), reduce_min(), reduce_min(), reduce_min(), DualConInputReader::reset(), blender::Bounds< T >::resize(), rgb_to_hsl(), rgb_to_hsl(), rgb_to_hsv(), rgb_to_hsv(), RNA_def_property_range(), RNA_def_property_ui_range(), RNA_property_float_clamp(), RNA_property_int_clamp(), BVHBuild::rotate(), blender::Bounds< T >::scale_from_center(), scopes_update_cb(), scopes_update_reduce(), screen_geom_area_map_find_active_scredge(), screen_geom_vertices_scale_pass(), blender::ed::greasepencil::select_frames_range(), select_next_v(), select_next_w(), selected_boundbox(), selected_tracking_boundbox(), SEQ_time_update_meta_strip_range(), seq_view_collection_rect_preview(), PassAccessor::set_render_tile_pixels(), blender::nodes::node_shader_clamp_cc::sh_node_clamp_build_multi_function(), blender::nodes::node_shader_sepcomb_rgb_cc::sh_node_combrgb_declare(), blender::nodes::node_shader_sepcomb_xyz_cc::comb::sh_node_combxyz_declare(), blender::nodes::node_shader_curves_cc::flt::sh_node_curve_float_declare(), blender::nodes::node_shader_curves_cc::rgb::sh_node_curve_rgb_declare(), blender::nodes::node_shader_curves_cc::vec::sh_node_curve_vec_declare(), blender::nodes::node_shader_map_range_cc::sh_node_map_range_declare(), blender::nodes::node_sh_mix_cc::sh_node_mix_declare(), blender::nodes::node_shader_sepcomb_xyz_cc::sep::sh_node_sepxyz_declare(), blender::nodes::node_shader_tex_brick_cc::sh_node_tex_brick_declare(), blender::nodes::node_shader_tex_checker_cc::sh_node_tex_checker_declare(), blender::nodes::node_shader_tex_magic_cc::sh_node_tex_magic_declare(), blender::nodes::node_shader_tex_noise_cc::sh_node_tex_noise_declare(), blender::nodes::node_shader_tex_voronoi_cc::sh_node_tex_voronoi_declare(), blender::nodes::node_shader_tex_wave_cc::sh_node_tex_wave_declare(), blender::nodes::node_shader_tex_white_noise_cc::sh_node_tex_white_noise_declare(), blender::nodes::node_shader_vector_math_cc::sh_node_vector_math_declare(), blender::nodes::node_shader_vector_rotate_cc::sh_node_vector_rotate_declare(), Freestyle::StrokeShaders::ConstrainedIncreasingThicknessShader::shade(), shadow_ray_smooth_surface_offset(), blender::draw::sharp_remap(), shift_cos_in(), blender::Bounds< T >::size(), sky_radiance_hosek(), sky_radiance_preetham(), smoothmin(), SnapData::snap_boundbox(), snap_curs_to_sel_ex(), spline_under_mouse_get(), BVHSpatialSplit::split(), spot_light_pdf(), blender::draw::statvis_calc_distort(), blender::draw::statvis_calc_overhang(), blender::draw::statvis_calc_sharp(), blender::draw::statvis_calc_thickness(), blender::eevee::IrradianceBake::surfel_raster_views_sync(), blender::eevee::IrradianceBake::surfels_create(), svm_brick(), svm_mix_dark(), svm_node_clamp(), svm_node_closure_bsdf(), svm_node_curve(), svm_node_min_max(), svm_vector_math(), BlenderSync::sync_integrator(), BlenderSync::sync_render_passes(), Mesh::tessellate(), blender::bke::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), TEST(), blender::draw::thickness_remap(), tile_calculate_best_size(), time_top_left_3dwindow(), transform_motion_array_interpolate(), blender::Bounds< T >::translate(), blender::nodes::try_dispatch_float_math_fl3_fl3_to_fl3(), UI_blocklist_min_y_get(), ui_def_but(), ui_def_but_rna(), ui_def_but_rna_propname(), ui_draw_but_HSV_v(), ui_draw_but_WAVEFORM(), ui_handle_list_event(), ui_numedit_but_HSVCUBE(), ui_selectcontext_apply(), uiDefBut(), uiDefButBit(), uiDefButBitC(), uiDefButBitI(), uiDefButBitS(), uiDefButC(), uiDefButF(), uiDefButI(), uiDefButR(), uiDefButR_prop(), uiDefButS(), uiDefIconBut(), uiDefIconButBit(), uiDefIconButBitC(), uiDefIconButBitI(), uiDefIconButBitS(), uiDefIconButI(), uiDefIconButR(), uiDefIconButR_prop(), uiDefIconButS(), uiDefIconTextBut(), uiDefIconTextButI(), uiDefIconTextButR(), uiDefIconTextButR_prop(), blender::compositor::BokehImageOperation::update_memory_buffer_partial(), blender::compositor::KuwaharaAnisotropicStructureTensorOperation::update_memory_buffer_partial(), blender::compositor::MapValueOperation::update_memory_buffer_partial(), RenderScheduler::update_start_resolution_divider(), BVHNode::update_time(), btAxisSweep3Internal< BP_FP_INT_TYPE >::updateHandle(), iTaSC::Armature::updateJoint(), util_hash_to_float(), uv_map_clip_correct(), uv_weld_align(), version_idproperty_move_data_float(), version_idproperty_move_data_int(), view3d_all_exec(), view3d_boundbox_clip_m4(), view3d_from_minmax(), view3d_from_minmax_multi(), view3d_localview_init(), view3d_object_calc_minmax(), view_all_cb(), viewselected_exec(), volume_draine_setup(), volume_fournier_forand_setup(), volume_henyey_greenstein_setup(), voronoi_distance_to_edge(), voronoi_distance_to_edge(), voronoi_distance_to_edge(), voronoi_distance_to_edge(), voronoi_distance_to_edge(), voronoi_distance_to_edge(), voronoi_distance_to_edge(), voronoi_distance_to_edge(), widget_scroll(), WIDGETGROUP_camera_refresh(), wm_software_cursor_draw(), Camera::world_to_raster_size(), wrap(), wrap(), and wrapf().

◆ swap

◆ swapcode

#define swapcode ( TYPE,
parmi,
parmj,
n )
Value:
{ \
long i = (n) / sizeof(TYPE); \
TYPE *pi = (TYPE *) (parmi); \
TYPE *pj = (TYPE *) (parmj); \
do { \
TYPE t = *pi; \
*pi++ = *pj; \
*pj++ = t; \
} while (--i > 0); \
}

Definition at line 33 of file sort.c.

Referenced by swapfunc().

◆ SWAPINIT

#define SWAPINIT ( a,
es )
Value:
swaptype = ((char *)a - (char *)0) % sizeof(long) || \
es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1;

Definition at line 44 of file sort.c.

Referenced by BLI_qsort_r().

◆ vecswap

#define vecswap ( a,
b,
n )   if ((n) > 0) swapfunc(a, b, n, swaptype)

Definition at line 63 of file sort.c.

Referenced by BLI_qsort_r().

Function Documentation

◆ BLI_qsort_r()

void BLI_qsort_r ( void * a,
size_t n,
size_t es,
BLI_sort_cmp_t cmp,
void * thunk )

◆ med3()

BLI_INLINE char * med3 ( char * a,
char * b,
char * c,
BLI_sort_cmp_t cmp,
void * thunk )

qsort, copied from FreeBSD source. with only very minor edits, see: http://github.com/freebsd/freebsd/blob/master/sys/libkern/qsort.c

Note
modified to use GLIBC argument order for callbacks.

Definition at line 66 of file sort.c.

References b, and CMP.

Referenced by BLI_qsort_r().

◆ swapfunc()

BLI_INLINE void swapfunc ( char * a,
char * b,
int n,
int swaptype )

Definition at line 47 of file sort.c.

References b, and swapcode.