bsp_Calculus.cpp bsp_Calculus.h 离散微积分 /*---------------------------------------------------------------------------------------------------- # #Copyright(c)2022YuankangLiang(XerolySkinner) # #本软件按原样提供,无任何明示或暗示 #在任何情况下,作者都不承担任何损害赔偿责任 # #使用的许可声明: #1.不得歪曲本软件的来源,你不能声称你编写了原始软件. #2.免费授予以任何目的,前提是版权声明出现在所有副本中. #并且版权声明和许可声明同时出现. #3.你有使用,复制,修改,分发,和销售本软件的许可. #4.如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的. #5.本通知不得从任何来源删除或更改. # #YuankangLiang(XerolySkinner) #E-mail:zabbcccbbaz@163.com #QQ:2715099320 #MobilePhone:13005636215 # #Allrightsreserved. */ //---------------------------------------------------------------------------------------------------- //头文件 #include"bsp_Calculus.h" //---------------------------------------------------------------------------------------------------- //类函数 floatbsp_Differential::Differential(floatvar){ staticfloatold=var; floatresult=(var-old)/dt; old=var; returnresult;} //---------------------------------------------------------------------------------------------------- //类函数 floatbsp_Integral::Integral(floatvar){ results+=var*dt; returnresults;} //---------------------------------------------------------------------------------------------------- voidbsp_Integral::Integral_set(floatresults){ bsp_Integral::results=results;} //---------------------------------------------------------------------------------------------------- u32bsp_Integral::Integral_makelist(u32len){ result_list=(float*)malloc(sizeof(float)*len); result_len=len; Integral_clslist(); return(u32)result_list;} //---------------------------------------------------------------------------------------------------- floatbsp_Integral::Integral_list(floatvar){ staticu32len=0; results+=var*dt; //保存历史 result_list[len]=var*dt; //轮盘转 ++len; if(len==result_len)len=0; //去除尾值 if(len<result_len-1) results-=result_list[len+1]; else results-=result_list[0]; // returnresults;} //---------------------------------------------------------------------------------------------------- voidbsp_Integral::Integral_dellist(void){ free(result_list); result_len=0; result_list=NULL;} //---------------------------------------------------------------------------------------------------- voidbsp_Integral::Integral_clslist(void){ if(result_list==NULL)return; for(u32i=0;i<result_len;i++) result_list[i]=0;}