/**
* Author: Victor Lecomte, chilli
* Date: 2019-10-29
* License: CC0
* Source: https://vlecomte.github.io/cp-geo.pdf
* Description: Projects point p onto line ab. Set refl=true to get reflection
* of point p across line ab instead. The wrong point will be returned if P is
* an integer point and the desired point doesn't have integer coordinates.
* Products of three coordinates are used in intermediate steps so watch out
* for overflow.
* Status: stress-tested
*/#pragma once
#include"src/geometry/Point.h"template<classP>PlineProj(Pa,Pb,Pp,boolrefl=false){Pv=b-a;returnp-v.perp()*(1+refl)*v.cross(p-a)/v.dist2();}
Traceback(mostrecentcalllast):File"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/onlinejudge_verify/documentation/build.py",line71,in_render_source_code_statbundled_code=language.bundle(stat.path,basedir=basedir,options={'include_paths':[basedir]}).decode()~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/onlinejudge_verify/languages/cplusplus.py",line187,inbundlebundler.update(path)~~~~~~~~~~~~~~^^^^^^File"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py",line312,inupdateraiseBundleErrorAt(path,i+1,"#pragma once found in a non-first line")onlinejudge_verify.languages.cplusplus_bundle.BundleErrorAt:src/geometry/LineProjectionReflection.h:line13:#pragmaoncefoundinanon-firstline