This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub tko919/library
#include "FPS/prodoffrkx.hpp"
#pragma once template<typename T>Poly<T> ProdOf_f_rk_x(Poly<T>& f,T r,int m){ // f(x)f(rx)...f(r^{m-1}x) assert(f[0]==1); T pwr=1,rm=T(r).pow(m),pwrm=1; auto g=f.log(); rep(i,1,g.size()){ pwr*=r; pwrm*=rm; if(pwr==1)g[i]*=m; else g[i]*=(pwrm-1)/(pwr-1); } return g.exp(); } /** * @brief $\Pi_{k=0}^{m-1} f(r^kx)$ */
#line 2 "FPS/prodoffrkx.hpp" template<typename T>Poly<T> ProdOf_f_rk_x(Poly<T>& f,T r,int m){ // f(x)f(rx)...f(r^{m-1}x) assert(f[0]==1); T pwr=1,rm=T(r).pow(m),pwrm=1; auto g=f.log(); rep(i,1,g.size()){ pwr*=r; pwrm*=rm; if(pwr==1)g[i]*=m; else g[i]*=(pwrm-1)/(pwr-1); } return g.exp(); } /** * @brief $\Pi_{k=0}^{m-1} f(r^kx)$ */