The Back-And-Forth Method (BFM) for Wasserstein Gradient Flows windows安装

本文记录了BFM算法代码在windows上的安装过程。

算法原网站:https://wasserstein-gradient-flows.netlify.app/

github:https://github.com/wonjunee/wgfBFMcodes

文章目录

  • FFTW
  • wgfBFMcodes
  • MATLAB
  • python

FFTW

官网/下载路径:https://www.fftw.org/install/windows.html

windows下FFTW安装教程可参考:

  1. https://blog.csdn.net/Jhon_ranble/article/details/120576590
  2. https://blog.csdn.net/ifenghua135792468/article/details/80608138?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-80608138-blog-70225210.235v43pc_blog_bottom_relevance_base9&spm=1001.2101.3001.4242.1&utm_relevant_index=3

下载并解压,之后使用VS编译。

本人采用VS2017,“x86 Native Tools Command Prompt for VS 2017”和“VS 2017的 x64_x86 交叉工具命令提示符”都可以。打开后cd到fftw解压路径,输入以下三个命令

lib /machine:x64 /def:libfftw3-3.def
lib /machine:x64 /def:libfftw3l-3.def
lib /machine:x64 /def:libfftw3f-3.def

结束后如图:
在这里插入图片描述
将生成的libfftw3-3.dll, libfftw3-3f.dll, libfftw3-3l.dll放入Windows/System32中,然后将生成的库文件libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib放入VS中的lib文件夹,把fftw3.h放入include文件夹。

wgfBFMcodes

下载github上的源码,可用git命令clone

git clone https://github.com/wonjunee/wgfBFMcodes
cd wgfBFMcodes/

MATLAB

从github clone代码后,用matlab打开,用mex命令编译。mex命令可以参考https://ww2.mathworks.cn/help/matlab/ref/mex.html#btw193f-1

在交互窗口输入

mex -setup C++
mex COMPFLAGS='$COMPFLAGS -std=c++17' src/wgfslow.cpp
mex COMPFLAGS='$COMPFLAGS -std=c++17' src/wgfinc.cpp

目前仍有报错,以后再修改。

python

打开cmd,cd到wgfBFMcodes/python下,运行compile.sh。此时程序会根据你电脑中的C/C++编译器编译src文件夹下的文件来获得接口。

可能我电脑上的C的编译器比较混乱,出现了M_PI没有定义的报错。在报错的文件添加

#define M_PI       3.14159265358979323846

即可运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/461208.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程JUC:等待唤醒机制(生产者消费者模式)

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:多线程&JUC:解决线程安全问题——synchronized同步代码块、Lock锁 📚订阅专栏:多线程&am…

MyBatis之动态代理实现增删改查以及MyBatis-config.xml中读取DB信息文件和SQL中JavaBean别名配置

MyBatis之环境搭建以及实现增删改查 前言实现步骤1. 编写MyBatis-config.xml配置文件2. 编写Mapper.xml文件(增删改查SQL文)3. 定义PeronMapper接口4. 编写测试类1. 执行步骤2. 代码实例3. 运行log 开发环境构造图总结 前言 上一篇文章,我们…

vue3 之 商城项目—一级分类

整体认识和路由配置 场景:点击哪个分类跳转到对应的路由页面,路由传对应的参数 router/index.js import { createRouter, createWebHashHistory } from vue-router import Layout from /views/Layout/index.vue import Home from /views/Home/index.vu…

作业2.8

1、选择题 1.1、以下选项中,不能作为合法常量的是 ____B______ A)1.234e04 B)1.234e0.4 C)1.234e4 D)1.234e0 1.2、以下定义变量并初始化错误的是_____D________。 A) char c1 ‘H’ ; B) char c…

Flink从入门到实践(一):Flink入门、Flink部署

文章目录 系列文章索引一、快速上手1、导包2、求词频demo(1)要读取的数据(2)demo1:批处理(离线处理)(3)demo2 - lambda优化:批处理(离线处理&…

巴尔加瓦算法图解:算法运用。

树 如果能将用户名插入到数组的正确位置就好了,这样就无需在插入后再排序。为此,有人设计了一种名为二叉查找树(binary search tree)的数据结构。 每个node的children 都不大于两个。对于其中的每个节点,左子节点的值都比它小,…

MyBatisPlus之分页查询及Service接口运用

一、分页查询 1.1 基本分页查询 配置分页查询拦截器 package com.fox.mp.config;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springfra…

pytorch入门第一天

今天作为入门pytorch的第一天。打算记录每天学习pytorch的一些理解和笔记,以用来后面回顾。当然如果能帮到和我一样的初学者,那也是不胜荣幸。作为一名初学者,难免有些地方会现错误,欢迎各位大佬指出 预备知识 这里主要介绍pyto…

Redis -- 安装客户端redis-plus-plus

目录 访问reids客户端github链接 安装git 如何安装? 下载/编译、安装客户端 安装过程中可能遇到的问题 访问reids客户端github链接 GitHub - sewenew/redis-plus-plus: Redis client written in CRedis client written in C. Contribute to sewenew/redis-p…

【精选】java初识多态 子类继承父类

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…

计算机毕业设计Python+django医院后勤服务系统flask

结合目前流行的 B/S架构,将医疗后勤服务管理的各个方面都集中到数据库中,以便于用户的需要。该平台在确保平台稳定的前提下,能够实现多功能模块的设计和应用。该平台由管理员功能模块,工作人员模块,患者模块,患者家属模…

Vue 条件渲染 双向绑定

https://www.dedao.cn/ebook/reader?id5lZOKpMGr9mgdOvYa6Ej75XRo1NML3jx810k8ZVzb2nqPpDxBeJlK4AyQ8RPQv2z v-if实现条件渲染的功能。v-model实现双向数据传输。 v-model用来进行双向绑定,当输入框中的文字变化时,其会将变化同步到绑定的变量上&#…