RayD public APIs use short, unambiguous stems. New public names must follow these rules.
- Use
Dfrfor diffraction:DfrStates,DfrGrid,DfrMaterial,DfrAccum,DfrPaths,accum_dfr_direct,accum_dfr,trace_dfr_paths. - Use
Reflfor reflection-specific compact names, and keepEpcin equivalent-path-correction APIs:ReflEpc,ReflEpcField,ReflEpcOptions,trace_refl_epc,trace_refl_epc_field. - Do not use
Difffor diffraction. In RayD,diffreads as differentiation/autodiff and conflicts withADnaming. - Use
ADonly for automatic differentiation variants:RayAD,DfrStatesAD,DfrAccumAD. - Keep full words where they avoid ambiguity:
Reflection,Segment,Material,Visibility.
- Prefer verb plus compact domain stem:
accum_dfr_direct,accum_dfr,trace_dfr_paths,trace_refl_epc_field,visible_edge. - Avoid repeating the domain inside every word. Use
accum_dfr_direct, notaccumulate_diffraction_order1. - Keep native fast-path methods strict. Do not add compatibility aliases for renamed public methods.
- Use
trace_*for path or geometry export, andaccum_*for kernels that reduce contributions into aggregate outputs such as grids.
- Remove repeated domain prefixes inside domain-specific structs:
DfrAccum.power, notdiffraction_power. - Prefer compact geometry names in hot data structures:
src,wi,d0,n0,n1,prim0,prim1,edge_t_min,edge_t_max. - For indexed path outputs, use
edge0,edge1,edge2andp0,p1,p2. - Use plural counter names for counters:
vis_rejects,edge_vis_rejects,utd_rejects,edge_uses.
- The bare Python class is the non-AD type; the AD variant carries an
ADsuffix. - C++ keeps the
T<Detached>alias pattern internally, with public concrete aliases matching the Python names where exposed.