+
    ,iJ                     @   ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHtHtHtHtHt ^ RIHt ^ RIHt R	 tR
 tR tR t]P4                  P7                  R]! ]4      4      R 4       t ! R R4      t ! R R]4      t ! R R]4      t  ! R R]4      t!R# )    N)LinAlgError)xp_assert_close)Halton)cKDTree)
_AVAILABLE_SCALE_INVARIANT_NAME_TO_MIN_DEGREE_monomial_powersRBFInterpolator)_rbfinterp_pythran)_run_concurrent_barrierc                 h    \        V P                  ^,          V4      p\        P                  ! W4      #    )r
   shaper   _polynomial_matrix)xdegreepowerss   && H/usr/lib/python3/dist-packages/scipy/interpolate/tests/test_rbfinterp.py_vandermonder      s)     aggaj&1F00;;    c                     V R,          p R\         P                  ! V ) 4      ^\         P                  ! RV ,          4      ,          ,
          ^\         P                  ! RV ,          4      ,          ,           ,          pV# )NNNg
ףp=
@r   r   npexp)r   ys   & r   _1d_test_functionr"      sP     	
$AbffaRj1RVVBqD\>)AbffRTlN:;AHr   c                    V R,          V R,          r!R\         P                  ! ^	V,          ^,
          ^,          ) ^,          ^	V,          ^,
          ^,          ^,          ,
          4      ,          pR\         P                  ! ^	V,          ^,           ^,          ) ^1,          ^	V,          ^,           ^
,          ,
          4      ,          pR\         P                  ! ^	V,          ^,
          ^,          ) ^,          ^	V,          ^,
          ^,          ^,          ,
          4      ,          pR\         P                  ! ^	V,          ^,
          ^,          ) ^	V,          ^,
          ^,          ,
          4      ,          pW4,           V,           V,           pV# )r   g      ?g      ?r   r   r   gɿr   )r   x1x2term1term2term3term4r!   s   &       r   _2d_test_functionr+      s    tWag266AbDFQ;,q.AbDFQ;q=899E266AbDFQ;,r/QrT!VRK788E"&&1R46A+a1R46A+a-788E266AbDFQ;,!B$q&1455E%AHr   c                    ^
p^dpR EF  p\        VR\        P                  P                  4       R7      p\	        V4       F  p^VP                  V4      ,          ^,
          p\
        P                  ! Wp4      p\        Wq^,
          4      p	\        P                  P                  V	RR7      w  rV
RV	P                  ^,          R13,          pVP                  P                  V4      P                  V4      p \        P                  P                  V4       K  	  EK  	  R#   \        P                  P                   d       R# i ; i)	
   Fscrambleseedcomplete)moder   NT)r               )r   r   randomRandomStateranger   _kernel_matrixr   linalgqrr   Tdotcholeskyr   )kernelmnxntestsndimseq_r   APQRQ2Bs   &&            r   #_is_conditionally_positive_definiterM   +   s     
BF TE		0E0E0GHvA#**R. 1$A"11!<AQA&A99<<
<3DA
 1aggajk>"B#A		""1% 	  (  99(( s   6D  EEr@   c                 h    \         P                  ! V R4      ^,           p\        W4      '       g   Q hR# )r   N)r	   getrM   )r@   rA   s   & r   $test_conditionally_positive_definiterQ   J   s,    
 	+a/A.v9999r   c                     a  ] tR t^St o ]P
                  P                  R]! ]4      4      R 4       t	]P
                  P                  R]! ]4      4      R 4       t
]P
                  P                  R]! ]4      4      R 4       tR t]P
                  P                  R 4       tR tR t]P
                  P                  R]! ]4      4      R	 4       t]P
                  P                  R]! ]4      4      R
 4       t]P
                  P                  R]! ]4      4      R 4       tR tR tR tR tR tR tR tR tR t]P
                  P<                  R 4       tR t R t!R t"R t#Rt$V t%R# )_TestRBFInterpolatorr@   c                R   \        ^R\        P                  P                  4       R7      p^VP                  ^24      ,          p\	        V4      p^VP                  ^24      ,          pV P                  W4RVR7      ! V4      pV P                  W4RVR7      ! V4      p\        WgRR7       R# )	r   Fr.         ?epsilonr@          @:0yE>atolN)r   r   r7   r8   r"   buildr   selfr@   rE   r   r!   xitpyitp1yitp2s   &&      r   test_scale_invariance_1d-_TestRBFInterpolator.test_scale_invariance_1dT   s     QRYY-B-B-DEcjjna B

1V
<TB

1V
<TB40r   c                6   \        ^R\        P                  P                  4       R7      pVP                  ^d4      p\	        V4      pVP                  ^d4      pV P                  W4RVR7      ! V4      pV P                  W4RVR7      ! V4      p\        WgRR7       R# )	r3   Fr.   rU   rV   rX   rY   rZ   N)r   r   r7   r8   r+   r\   r   r]   s   &&      r   test_scale_invariance_2d-_TestRBFInterpolator.test_scale_invariance_2d`   s     QRYY-B-B-DEJJsOa zz#

1V
<TB

1V
<TB40r   c                4   \        ^R\        P                  P                  4       R7      pRpRpVP                  ^d4      p\	        V4      pVP                  ^d4      pV\
        9   dO   V P                  WVVR7      ! V4      pV P                  WS,          V,           VVR7      ! Ws,          V,           4      p	MVV P                  WVRVR7      ! V4      pV P                  WS,          V,           VRV,          VR7      ! Ws,          V,           4      p	\        WRR	7       R
# )r3   Fr.   gd~QJgAjZKr@         @rV   rY   rZ   N)r   r   r7   r8   r+   r   r\   r   )
r^   r@   rE   scaleshiftr   r!   r_   r`   ra   s
   &&        r   test_extreme_domains)_TestRBFInterpolator.test_extreme_domainsl   s     QRYY-B-B-DEJJsOa zz#%%JJqFJ3D9EJJ%   *u$&E
 JJqSJ@FEJJ%E	   *u$	&E 	40r   c                   \         P                  P                  ^ 4      p\        ^RVR7      p^pVP                  ^24      pVP                  ^24      p\	        WC4      p\	        WS4      pVP                  RRVP                  ^,          4      pVP                  V4      p	VP                  V4      p
V P                  WIVR7      ! V4      p\        WRR7       R# )	r   Fr.           rU   r   rY   rZ   N)
r   r7   r8   r   r   normalr   r>   r\   r   )r^   rngrE   r   r   r_   rH   Pitppoly_coeffsr!   r`   ra   s   &           r   test_polynomial_reproduction1_TestRBFInterpolator.test_polynomial_reproduction   s     ii##A&QS1JJrNzz"~#D)jjc1771:6EE+%

1
/540r   c                   a \         P                  P                  ^ 4      p\        ^RVR7      p^pRpVP                  ^24      pVP                  V4      p\	        Wd4      p\	        Wt4      p	VP                  RRVP                  ^,          4      p
VP                  V
4      pV	P                  V
4      pV P                  WkVR7      pVP                  oV3R lpVP                  VRV4       V! V4      p\        WRR	7       R
# )r   Fr.   ro   rU   rp   c                  8   < VP                  ^dR7       S! V / VB # )d   )memory_budget)update)argskwargsce_reals   *,r   _chunk_evaluator<_TestRBFInterpolator.test_chunking.<locals>._chunk_evaluator   s!    MMM,D+F++r   r   rY   rZ   Ni	  )r   r7   r8   r   r   rq   r   r>   r\   r   setattrr   )r^   monkeypatchrr   rE   r   largeNr   r_   rH   rs   rt   r!   r`   interpr   ra   r~   s   &&              @r   test_chunking"_TestRBFInterpolator.test_chunking   s    
 ii##A&QS1JJrNzz&!#D)jjc1771:6EE+%A0))	, 	F$68HIt40r   c           
        \        ^R\        P                  P                  4       R7      pVP                  ^d4      pVP                  ^d4      p\        P                  ! \        V4      \        VRRRR13,          4      .4      P                  pV P                  W$4      ! V4      pV P                  W$R,          4      ! V4      pV P                  W$R,          4      ! V4      p\        VR,          V4       \        VR,          V4       R# )r3   Fr.   r   NrO   r   r$   )	r   r   r7   r8   arrayr+   r=   r\   r   r^   rE   r   r_   r!   r`   ra   yitp3s   &       r   test_vector_data%_TestRBFInterpolator.test_vector_data   s     QRYY-B-B-DEJJsOzz#HH'*'!TrT'
35 667a 	
 

1 &

1g&t,

1g&t,dU+dU+r   c           	        \        ^R\        P                  P                  4       R7      pVP                  ^d4      pVP                  ^d4      p\	        V4      R\	        VRRRR13,          4      ,          ,           pV P                  W$4      ! V4      pV P                  W$P                  4      ! V4      pV P                  W$P                  4      ! V4      p\        VP                  V4       \        VP                  V4       R# )r3   Fr.   y              ?r   NrO   )	r   r   r7   r8   r+   r\   realimagr   r   s   &       r   test_complex_data&_TestRBFInterpolator.test_complex_data   s     QRYY-B-B-DEJJsOzz#a 2&7!TrT'
&C#CC

1 &

1ff%d+

1ff%d+

E*

E*r   c                r   \        ^R\        P                  P                  4       R7      p^VP                  ^24      ,          p^VP                  ^24      ,          p\	        V4      p\	        V4      pV P                  W5RVR7      ! V4      p\        P                  ! Wv,
          ^,          4      pVR8  g   Q hR# )r   Fr.   ri   rV   -C6?N)r   r   r7   r8   r"   r\   mean	r^   r@   rE   r   r_   r!   ytrueyitpmses	   &&       r   test_interpolation_misfit_1d1_TestRBFInterpolator.test_interpolation_misfit_1d   s     QRYY-B-B-DEcjjnBa !$'zz!Fz;DAggt|a'(V||r   c                V   \        ^R\        P                  P                  4       R7      pVP                  ^d4      pVP                  ^d4      p\	        V4      p\	        V4      pV P                  W5RVR7      ! V4      p\        P                  ! Wv,
          ^,          4      pVR8  g   Q hR# )r3   Fr.   ri   rV   g-C6*?N)r   r   r7   r8   r+   r\   r   r   s	   &&       r   test_interpolation_misfit_2d1_TestRBFInterpolator.test_interpolation_misfit_2d   s     QRYY-B-B-DEJJsOzz#a !$'zz!Fz;DAggt|a'(V||r   c           	        \         P                  P                  ^ 4      p\        ^RVR7      pRpRp^
\         P                  ! R
^^4      ,          p^VP                  ^d4      ,          p\        V4      VP                  RVR4      ,           p\        V4      p	Rp
V F_  pV P                  WxRVVR7      ! V4      p\         P                  ! \         P                  ! W,
          ^,          4      4      pW8  g   K]  Rp
 M	  V
'       g   Q hR	# )r   Fr.   g?g?ro   rU   )rW   	smoothingr@   TN)ry   )
r   r7   r8   r   linspacer"   rq   r\   sqrtr   )r^   r@   rr   rE   noisermse_tolsmoothing_ranger   r!   r   rmse_within_tolr   ysmoothrmses   &&            r   test_smoothing_misfit*_TestRBFInterpolator.test_smoothing_misfit  s     ii##A&QS1bkk"a44cjjoa 3::c5&#AA!!$(Ijj#	 !   !	"G
 77277GOa#789D"& ) r   c                   \         P                  P                  ^ 4      p\        ^RVR7      p^pVP                  ^24      p\	        WC4      pVP                  RRVP                  ^,          4      pVP                  V4      p\         P                  ! V4      pV^
;;,          R,          uu&   \         P                  ! R
4      p	RV	^
&   V P                  WHV	R7      ! V4      p
\        WRR7       R	# )r   Fr.   ro   rU   g     @@r   r   rZ   N)2   )r   r7   r8   r   r   rq   r   r>   copyzerosr\   r   )r^   rr   rE   r   r   rH   rt   r!   y_with_outlierr   r   s   &          r   test_array_smoothing)_TestRBFInterpolator.test_array_smoothing  s     ii##A&QS1JJrN#jjc1771:6EE+rc!HHUO		"zz!yzA!Dd+r   c                   \        ^R\        P                  P                  4       R7      P                  ^
4      p\	        V4      p\        ^R\        P                  P                  4       R7      P                  ^
4      pRp\
        P                  ! \        VR7      ;_uu_ 4        V P                  W4      ! V4       RRR4       R#   + '       g   i     R# ; i)r3   Fr.   zExpected the second axis of `x`matchN)	r   r   r7   r8   r+   pytestraises
ValueErrorr\   )r^   r!   dr   r   s   &    r   $test_inconsistent_x_dimensions_error9_TestRBFInterpolator.test_inconsistent_x_dimensions_error0  s     1u299+@+@+BCJJ2Na 1u299+@+@+BCJJ2N1]]:U33JJqQ 4333s   $CC	c                   \         P                  ! ^ ^^4      R,          p\         P                  ! ^4      pRp\        P                  ! \
        VR7      ;_uu_ 4        V P                  W4       RRR4       R#   + '       g   i     R# ; i)r   NzExpected the first axis of `d`r   r   Nr   r   r   r   r   r   r\   r^   r!   r   r   s   &   r    test_inconsistent_d_length_error5_TestRBFInterpolator.test_inconsistent_d_length_error:  sW    KK1a )HHQK0]]:U33JJq 4333s   A88B		c                
   \         P                  ! ^ ^^4      p\         P                  ! ^4      pRp\        P                  ! \
        VR7      ;_uu_ 4        V P                  W4       RRR4       R#   + '       g   i     R# ; i)r   z"`y` must be a 2-dimensional array.r   Nr   r   s   &   r   test_y_not_2d_error(_TestRBFInterpolator.test_y_not_2d_errorA  sR    KK1a HHQK4]]:U33JJq 4333s   A11B	c                H   \         P                  ! ^ ^^4      R,          p\         P                  ! ^4      p\         P                  ! ^4      pRp\        P
                  ! \        VR7      ;_uu_ 4        V P                  WVR7       RRR4       R#   + '       g   i     R# ; i)r   NzExpected `smoothing` to ber   r   r   )r   r   r   onesr   r   r   r\   )r^   r!   r   r   r   s   &    r   (test_inconsistent_smoothing_length_error=_TestRBFInterpolator.test_inconsistent_smoothing_length_errorH  sh    KK1a )HHQKGGAJ	,]]:U33JJqyJ1 4333s   2BB!	c                   \         P                  ! ^ ^^4      R,          p\         P                  ! ^4      pRp\        P                  ! \
        VR7      ;_uu_ 4        V P                  WRR7       RRR4       R#   + '       g   i     R# ; i)r   Nz`kernel` must be one ofr   testrh   r   r   r   s   &   r   test_invalid_kernel_name_error3_TestRBFInterpolator.test_invalid_kernel_name_errorP  s[    KK1a )HHQK)]]:U33JJqFJ+ 4333   A::B	c           	     P   \         P                  ! ^ ^^4      R,          p\         P                  ! ^4      p\         FR  pV\        9   d   K  Rp\
        P                  ! \        VR7      ;_uu_ 4        V P                  WVR7       RRR4       KT  	  R#   + '       g   i     Ki  ; i)r   Nz`epsilon` must be specifiedr   rh   r   )	r   r   r   r   r   r   r   r   r\   )r^   r!   r   r@   r   s   &    r    test_epsilon_not_specified_error5_TestRBFInterpolator.test_epsilon_not_specified_errorW  sv    KK1a )HHQK F))1Ez77

1
/ 87 !
 877s   2BB%c                T   \         P                  ! ^ ^^4      R,          p\         P                  ! ^ ^^4      p\         P                  ! ^4      pRp\        P                  ! \
        VR7      ;_uu_ 4        V P                  W4      ! V4       RRR4       R#   + '       g   i     R# ; i)r   Nz"`x` must be a 2-dimensional array.r   r   r   )r^   r!   r   r   r   s   &    r   test_x_not_2d_error(_TestRBFInterpolator.test_x_not_2d_errorb  sn    KK1a )KK1a HHQK4]]:U33JJqQ 4333s   4BB'	c                   \         P                  ! ^ ^^4      R,          p\         P                  ! ^4      pRp\        P                  ! \
        VR7      ;_uu_ 4        V P                  WRR7       RRR4       R#   + '       g   i     R# ; i)r   Nz#At least 2 data points are requiredr   thin_plate_splinerh   r   r   r   s   &   r   "test_not_enough_observations_error7_TestRBFInterpolator.test_not_enough_observations_errorj  s\    KK1a )HHQK5]]:U33JJq$7J8 4333r   c                   \         P                  ! ^ ^^4      R,          p\         P                  ! ^4      p\        P                  ! 4        F[  w  r4V^8  g   K  RV 2p\
        P                  ! \        VR7      ;_uu_ 4        V P                  WRW4^,
          R7       RRR4       K]  	  R#   + '       g   i     Kr  ; i)r   Nz`degree` should not be below r   rU   rW   r@   r   r   )	r   r   r   r	   itemsr   warnsWarningr\   )r^   r!   r   r@   degr   s   &     r   test_degree_warning(_TestRBFInterpolator.test_degree_warningq  s    KK1a )HHQK.446KFax7u=\\'77JJqSAJN 87	 7 877s   B,,B=c           	         \         P                  ! ^ ^^4      R,          p\         P                  ! ^4      p\        P                  ! 4        F  w  r4V P                  WRVRR7       K  	  R# )r   NrU   r   r   rO   )r   r   r   r	   r   r\   )r^   r!   r   r@   rF   s   &    r   test_minus_one_degree*_TestRBFInterpolator.test_minus_one_degree|  sO    KK1a )HHQK,224IFJJqSJC 5r   c                ,   \         P                  ! R R.RR.RR..4      p\         P                  ! . RO4      pRp\        P                  ! \        VR7      ;_uu_ 4        V P                  WRR7      ! V4       RRR4       R#   + '       g   i     R# ; i)	rX   ro   rU   zdoes not have full column rankr   r   rh   N)ro   ro   ro   )r   r   r   r   r   r\   r   s   &   r   test_rank_error$_TestRBFInterpolator.test_rank_error  sn     HHsCj3*sCj9:HH_%0]];e44JJq$7J8; 5444s   BB	c                    R FU  p\         P                  ! ^V34      p\         P                  ! R4      pV P                  W#RR7      ! V4      p\	        W44       KW  	  R# )r   linearrh   N)r   r3   r4   r   )r   r   r   r\   r   )r^   dimr!   r   fs   &    r   test_single_point&_TestRBFInterpolator.test_single_point  sL     C!S"AA

1
1!4AA!	 r   c                ~   \        ^R\        P                  P                  R4      R7      p^VP                  ^24      ,          p^VP                  ^24      ,          p\	        V4      pV P                  W$4      pV! V4      p\        P                  ! \        P                  ! V4      4      ! V4      p\        WgRR7       R# )r   Fl   e r.   gؗҜ<rZ   N)
r   r   r7   r8   r"   r\   pickleloadsdumpsr   )r^   rE   r   r_   r!   r   r`   ra   s   &       r   test_pickleable$_TestRBFInterpolator.test_pickleable  s     QRYY-B-B:-NOcjjnBa A!tV\\&124851r    N)&__name__
__module____qualname____firstlineno__r   markparametrizesortedr   rb   re   r   rl   ru   slowr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   thread_unsafer   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r   rS   rS   S   s    [[Xv.>'?@	1 A	1 [[Xv.>'?@	1 A	1 [[Xvj'9:1 ;161, [[1 1>,$+" [[Xvj'9: ; [[Xvj'9: ; [[Xvj'9: ;6,& 2,	0 9 [[O OD<"2 2r   rS   c                   2   a  ] tR tRt o R tR tR tRtV tR# ) TestRBFInterpolatorNeighborsNonei  c                    \        V/ VB # Nr   r^   r|   r}   s   &*,r   r\   &TestRBFInterpolatorNeighborsNone.build  s    ///r   c                   \        ^R\        P                  P                  4       R7      p^pRp^VP                  ^24      ,          p^VP                  ^24      ,          p\	        V4      pV P                  WFVVR7      ! V4      p\        WB4      p\        WR4      p	V	P                  \        P                  P                  WRR7      ^ ,          4      p
\        WzRR7       R# )	r   Fr.       חAr   r   NrcondrY   rZ   )r   r   r7   r8   r"   r\   r   r>   r;   lstsqr   r^   rE   r   r   r   r_   r!   r`   rH   rs   ra   s   &          r   test_smoothing_limit_1d8TestRBFInterpolatorNeighborsNone.test_smoothing_limit_1d  s     QRYY-B-B-DE	cjjnBa 

   	 #D)T:1=>40r   c                   \        ^R\        P                  P                  4       R7      p^pRpVP                  ^d4      pVP                  ^d4      p\	        V4      pV P                  WFVVR7      ! V4      p\        WB4      p\        WR4      p	V	P                  \        P                  P                  WRR7      ^ ,          4      p
\        WzRR7       R# )	r3   Fr.   r  r	  Nr
  rY   rZ   )r   r   r7   r8   r+   r\   r   r>   r;   r  r   r  s   &          r   test_smoothing_limit_2d8TestRBFInterpolatorNeighborsNone.test_smoothing_limit_2d  s     QRYY-B-B-DE	JJsOzz#a 

   	 #D)T:1=>40r   r   N)	r   r   r   r   r\   r  r  r   r   r   s   @r   r  r    s     0121 1r   r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestRBFInterpolatorNeighbors20i  c                     \        V/ VBR ^/B # 	neighborsr  r  s   &*,r   r\   $TestRBFInterpolatorNeighbors20.build  s    =="==r   c                   \        ^R\        P                  P                  4       R7      pVP                  ^d4      pVP                  ^d4      p\	        V4      pV P                  W$4      ! V4      p. p\        V4      pV FR  pVP                  V^4      w  rVP                  \        W*,          WJ,          4      ! VR,          4      ^ ,          4       KT  	  \        WVRR7       R# )r3   Fr.   NrY   rZ   )r   r   r7   r8   r+   r\   r   queryappendr   r   )r^   rE   r   r_   r!   r`   ra   treexirF   nbrs   &          r   #test_equivalent_to_rbf_interpolatorBTestRBFInterpolatorNeighbors20.test_equivalent_to_rbf_interpolator  s    QRYY-B-B-DEJJsOzz#a 

1 &qzBZZB'FALL8DB1EF  	40r   c                    \        ^R\        P                  P                  ^ 4      R7      pVP                  ^d4      pVP                  ^d4      p\	        V4      pV P                  W$4      pR p\        ^
WeV4       R# )r3   Fr.   c                     V! V4       R # r  r   )rF   r   xps   &&&r   	worker_fnBTestRBFInterpolatorNeighbors20.test_concurrency.<locals>.worker_fn   s	    2Jr   N)r   r   r7   r8   r+   r\   r   )r^   rE   r   r_   r!   r   r$  s   &      r   test_concurrency/TestRBFInterpolatorNeighbors20.test_concurrency  sf     QRYY-B-B1-EFJJsOzz#a A!	 	 It<r   r   N)	r   r   r   r   r\   r  r&  r   r   r   s   @r   r  r    s     >1$= =r   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestRBFInterpolatorNeighborsInfi  c                <    \        V/ VBR \        P                  /B # r  )r   r   infr  s   &*,r   r\   %TestRBFInterpolatorNeighborsInf.build	  s    AA"&&AAr   c                :   \        ^R\        P                  P                  4       R7      p^VP                  ^24      ,          p^VP                  ^24      ,          p\	        V4      pV P                  W$4      ! V4      p\        W$4      ! V4      p\        WVRR7       R# )r   Fr.   rY   rZ   N)r   r   r7   r8   r"   r\   r   r   )r^   rE   r   r_   r!   r`   ra   s   &      r   r  CTestRBFInterpolatorNeighborsInf.test_equivalent_to_rbf_interpolator  sw    QRYY-B-B-DEcjjnBa 

1 &%d+40r   r   N)r   r   r   r   r\   r  r   r   r   s   @r   r)  r)    s     B
1 
1r   r)  )"r   r   numpyr   numpy.linalgr   scipy._lib._array_apir   scipy.stats.qmcr   scipy.spatialr   scipy.interpolate._rbfinterpr   r   r	   r
   r   scipy.interpolater   scipy._lib._testutilsr   r   r"   r+   rM   r   r   r   rQ   rS   r  r  r)  r   r   r   <module>r7     s       $ 1 " !  1 9<	> 6*#56: 7:Q2 Q2h
41'; 41n%=%9 %=P1&F 1r   