首页 > 编程语言 >uniform_filter1d之nearest模式基于JAVA编程实现

uniform_filter1d之nearest模式基于JAVA编程实现

时间:2024-07-12 15:43:20浏览次数:18  
标签:tmp nearest JAVA size1 currentLine int double uniform input

 1     private static Double[] uniform_filter1d_double_fast(Double[] input, int size) {
 2         Double[] output = new Double[input.length];
 3         //https://github.com/scipy/scipy
 4         //‘nearest’ (a a a a | a b c d | d d d d)
 5         boolean more;
 6         int size1 = size/2;
 7         int size2 = size - size1 - 1;
 8         int maxLines = input.length - 1;
 9         int len = input.length;
10         int currentLine = 0;
11         double preWindowSum = 0.;
12         double preFirstValue = 0.;
13         boolean preInitialized = false;
14         do {
15             Double tmp = 0.;
16             if (!preInitialized) {
17                 int start = 0;
18                 preFirstValue = input[start];
19                 for (int i = 0; i < size1; i++) {
20                     tmp = p_double_add(tmp, input[start]);
21                 }
22                 tmp = p_double_add(tmp, input[currentLine]);
23                 for (int i = 0; i < size2; i++) {
24                     tmp = p_double_add(tmp, input[currentLine+i+1]);
25                 }
26             } else {
27                 preWindowSum = p_double_subtract(preWindowSum, preFirstValue);
28                 if (currentLine > size1) {
29                     preFirstValue = input[currentLine-size1];
30                 }
31                 if (currentLine+size2 <= maxLines) {
32                     tmp = p_double_add(preWindowSum, input[currentLine+size2]);
33                 } else {
34                     tmp = p_double_add(tmp, input[maxLines]);
35                 }
36             }
37             preWindowSum = tmp;
38             if (!preInitialized) {
39                 preInitialized = true;
40             }
41             output[currentLine] = p_double_divide(tmp , size);
42             currentLine++;
43             more = currentLine < len;
44         } while (more);
45         return output;
46     }

以上为分析scipy库中的c++代码后所写。

标签:tmp,nearest,JAVA,size1,currentLine,int,double,uniform,input
From: https://www.cnblogs.com/justbeginning/p/18298516

相关文章

  • JavaScript进阶(四)---js解构
    目录一.定义:二.类型:1.数组解构:1.1变量和值不匹配的情况1.2多维数组2.对象解构3.对象数组解构4.函数参数解构5.扩展运算符一.定义:JavaScript中的解构(Destructuring)是一种语法糖,它允许我们从数组或对象中提取数据,并将这些数据赋值给新的变量。解构使得代码更......
  • Java-Redis缓存穿透、缓存击穿及缓存雪崩(配解决方案及代码示例)
    前言在现代高并发的互联网应用中,缓存技术已成为提升系统响应速度与减轻后端数据库压力的关键手段。Redis,以其卓越的性能和丰富的数据结构,成为众多开发者构建缓存层的首选。然而,随着业务复杂度的增加,Redis缓存层也可能遭遇“缓存穿透”、“缓存击穿”以及“缓存雪崩”等现......
  • 【java计算机毕设】线上花店销售商城系统java MySQL ssm JSP maven项目代码源码+文档p
    目录1项目功能2项目介绍3项目地址 1项目功能【java计算机毕设】线上花店销售商城系统MySQLssmJSPmaven项目代码源码+文档PPT小组设计代码 2项目介绍系统功能:线上花卉小铺系统包括管理员、用户俩种角色。用户端:1.注册登录:游客填写基础信息,注册成为小铺用......
  • Java性能优化-switch性能优化-用String还是int做比较
    场景Java中使用JMH(JavaMicrobenchmarkHarness微基准测试框架)进行性能测试和优化:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/131723751参考以上性能测试工具的使用。下面针对Java中对switch-case比较时使用String还是int性能做对比。注:博客:https://bl......
  • java设计模式(十七)状态模式(State Pattern)
    1、模式介绍:状态模式(StatePattern)是一种行为型设计模式,用于实现对象状态的变化管理。它允许一个对象在其内部状态发生变化时改变其行为,使得对象看起来似乎修改了其类。2、应用场景:当一个对象的行为取决于其状态,并且需要在运行时根据状态改变其行为时。当状态转换过程中需......
  • java设计模式(十四)策略模式(Strategy Pattern)
    1、模式介绍:策略模式是一种行为设计模式,它定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。2、应用场景:当一个对象有多种行为,而需要动态选择一种行为时。不同的策略可以实现不同的行为,客户端根据需要在运行时选择合适的策略。当......
  • [Java]“不同族”基本数据类型间只能“强转”吗?
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18298193出自【进步*于辰的博客】本文阐述需要计算不同位二进制的表示范围,引用博文《[MySQL]知识点》中的【数据范围通式】一栏得出的计算公式。虽然Java与MySQL属不同体系,......
  • Java性能优化-switch-case和if-else速度性能对比,到底谁快?
    场景Java中使用JMH(JavaMicrobenchmarkHarness微基准测试框架)进行性能测试和优化:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/131723751参考以上性能测试工具的使用。下面针对Java中对switch-case和if-else在速度方面的性能做测试。注:博客:https://blog......
  • java实现浅拷贝与深拷贝
    目录浅拷贝 深拷贝实现cloneable接口序列化浅拷贝浅拷贝是指创建一个新的对象,该对象的内容是原始对象中各项的引用。换句话说,浅拷贝仅复制了原始对象中元素的引用,而不是元素本身的拷贝classPeopleimplementsCloneable{privateStringname;privateint......
  • 【日常记录-Java】自定义进程池
    Author:赵志乾Date:2024-07-12Declaration:AllRightReserved!!!1.简介    服务器上有些进程需要池化管理,使用SpringBoot构建Web服务提供管理api,内部使用自定义的进程池维护已启动的进程;    核心点: 进程池管理的进程都会使用系统的一个端口对外提供服务; ......