自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (5)
  • 收藏
  • 关注

原创 Bazel离线编译Yacl

Yacl是Secretflow的组件库。一般先删除.bazelversion官网的安装流程是下面一句话解决,事实上这个语句需要在线下载很多库安装。

2024-03-25 14:44:39 208

原创 隐语第1讲笔记--数据可信流通

滥用数据会导致严重后果,数据可信流通推动从运维信任走向技术信任。信任的基石:身份可确认,利益可依赖,能力有预期,行为有后果。数据以密态流通,保障全链路安全。

2024-03-18 21:03:34 237

原创 SEAL库计算Galois自同构

SEAL是著名的同态加密库,支持Galois自同构运算。

2024-02-26 15:35:11 194

原创 CMake编译Yacl

本文展示如何用CMake编译Yacl,前提是"*.proto"文件已经用Google protobuf编译好。本文还会解释如何链接Yacl的静态库。

2023-12-18 15:13:37 391

原创 Galois ring

Basic properties of Galois rings

2023-09-25 19:16:29 80

原创 隐语yacl通信示例

隐语通信示例代码

2023-09-24 14:00:22 164 2

原创 本原根与分圆域

本原根和分圆域

2023-09-21 19:09:46 83

原创 关于Googletest框架的猜测

本文致力于猜测著名的开源库Googletest的主要框架,即“记录函数、执行所有测试”功能的实现。作者只是粗略浏览了Googletest的源码,所以只能给出一个可能的框架。下面以代码来描述Googletest的主要框架。核心类UnitTest记录需要测试的函数,源码似乎使用了Singleton,所以这里也模仿使用Singleton。一个关键的猜测是测试函数被封装成类,类的对象在实例化时执行注册,即让UnitTest记录这个类的指针。

2023-08-26 13:33:19 42

原创 BCH编码

讲述BCH编码的数学原理

2023-06-26 14:35:22 89

原创 C++复制所有指定后缀的文件

C++复制所有指定后缀的文件,

2023-05-08 15:31:49 136

原创 STL limits文件

_INT_N(TYPE, BITSIZE, EXT, UEXT)同时处理TYPE和unsigned TYPE。numeric_limits主要用于萃取类型的比特数、符号类型,并据此给出最大最小值。BITSIZE是比特数,2136/643是log2(10)。

2023-05-05 14:41:33 47

原创 NTL(Number Theory Library)源码剖析(1.2)__内存管理

下面所有内容在命名空间NTL_NAMESPACE中,即夹在NTL_OPEN_NNS和NTL_CLOSE_NNS中。先列出用于析构的函数。所以在NTL_VECTOR_HEADER_SIZE占16字节。下面假设在64位windows中long占4字节,

2023-04-13 20:32:03 100

原创 NTL(Number Theory Library)源码剖析_文件概述

tool: 定义常用宏,例如NTL_TLS_GLOBAL_DECL(type,var)实际上定义了一个具有线程存储期的静态变量var,类型为type。本文给出NTL源码中src和include文件夹中的文件的概述。ctools: 定义常用宏,这些宏作为工具。config: 配置一些标识符。lip: 定义基本运算。

2023-04-12 21:19:24 290

原创 C++遍历目录

【代码】C++遍历目录。

2023-04-12 11:14:29 329

原创 FFT实现的高精度乘法

这篇笔记很好地解释了FFT用于高精度乘法的原理,首先阐述FFT如何处理多项式,再把大整数看成多项式。这里不赘述离散傅里叶变换DFT,FFT的一种解释见。

2023-02-04 14:07:06 343

原创 NTL(Number Theory Library)源码剖析(2)__基本运算

本文讲解NTL库中的基本运算代码。下面是高精度加法函数,b相当于进位标志,先把b加到rp,把ap的低n个_ntl_limb_t加到rp. 返回需要加到更高位的b.. 尽管每个数据单元_ntl_limb_t占32位,但实际只用低30位。_ntl_limb_t_ptr所指内存的格式详见我的源码剖析系列文章。本文讲解NTL库中的基本运算代码。NTL_LIMB_MASK在我的计算机上是32位的。,下面的CLIP函数即截取a的低30位。

2022-11-24 21:41:34 279

原创 NTL(Number Theory Library)源码剖析(1.1)__内存管理

本文讲解NTL源码中关于内存管理的部分。ntl_gbigint_body用于管理存储big integer的空间,alloc_取值最低位是frozen_flag,第1位为continue_flag,(alloc_ >> 2)表示分配的_ntl_limb_t的个数。size_表示使用的_ntl_limb_t个数。本讲解NTL源码中关于内存管理的部分,下面提到源码文件a.h时同时指a.cpp。一个二进制数最低位为第0位。主要在中。_ntl_limb_t用于表示数据单元。下面函数用于释放内存。

2022-11-23 19:49:36 558

原创 安装NTL: A Library for doing Number Theory

官网链接下面介绍使用Windows系统的Visual Studio软件的NTL安装使用教程。在不全面了解这个库的情况下,可以把库的源文件都编译为静态库来使用。

2022-11-12 20:47:21 473

原创 C++获取new创建的数组的大小

这里强制转换指针是必须的,否则会解释为float数据。C++中用new创建数组后可能需要获取数组大小。

2022-09-20 19:25:23 1381

原创 Simulink Embeded Coder生成的C代码解析

本文以一个简单的模型为例讲述Embeded Coder生成的C代码的架构。

2022-08-30 15:14:50 715

原创 Matlab写Excel文件

writetable(T, filename)表示把表格T写入文件filename. 后面的参数为'Name', 'Value'对,比如Sheet参数为表的序号,Range参数为写入开始的单元格。本文介绍Matlab写Excel文档的方法。主要方法是直接调用writetable函数。调用之前先构建好table的内容。其中Index, A, B是表格的3列。table函数可以接受若干个列向量组成表格。............

2022-08-30 10:48:46 2482

原创 解析Simulink Coder生成的C代码

关键的2个函数是SingleSubsystem_step, SingleSubsystem_initialize. 前者是仿真的每一步要执行的函数,后者是初始化函数。以上代码列出并不是直接从Simulink生成的代码中复制过来的,有一点点修改。首先SingleSubsystem_M_ 全局变量,保存仿真过程中的模型整体数据,其实就是为了控制模型的仿真步数。这个函数先把SingleSubsystem_M_清零,然后将结束时间设置为10.0,步长为0.2,这2个数据都可以在模型中设置。...

2022-08-22 17:55:15 1707 5

原创 Matlab appdesigner树控件

表示创建1个parent的子结点,并返回这个子结点对象。这种结点具有属性Text, NodeData, Icon,分别表示在窗口中显示的文字、含在子结点中的数据(不会在窗口显示出来)、显示出来的图标。uitree( Figure )表示在窗口Figure中生成一棵树,并返回树这个对象。树本身可以看成是根节点,但是这个根结点不会在窗口中显示出来。函数ButtonPushed()表示按下按键就生成结点,TreeSelectionChanged()表示鼠标选择树结点时应该执行的内容。这里我把结点的数据输出出来。.

2022-08-18 17:53:00 2500

原创 Matlab脚本创建simulink模型

add_block也没有指定位置的参数。当然可以通过get_param([Model_Name'/Pulse1'],'Position')查看位置参数,用的是Windows默认坐标系,即左上角是原点,向右是x轴,向下是y轴。本文介绍如何用simulink脚本全自动创建simulink模型。封装子系统的关键是把子系统看成1个模块,注意在子系统中加线格式为。如果想要封装一些已存在的模块,用下列代码。或者整个子系统内部模块再封装为子系统。运行simulink模型仿真的语句为。完整的封装子系统例子如下。......

2022-08-01 14:23:48 3618

原创 Matlab写Word文档

注意有多个字符串分开输出时,需要令Word.Selection.Start=Word.Selection.End或Word.Selection.Start=Doc.Content.End.否则Start不会变化,再写字符串会覆盖之前的内容。到底用哪个End,取决于上1个操作用的是Word还是Doc.比如插图是Doc的操作,就用Word.Selection.Start=Doc.Content.End.表格的行、列编号都从1开始。......

2022-07-23 19:06:51 2932

原创 Simulink Autosar component designer

注意AdaptivePlatform和ClassicPlatform的区别,前者是面向服务的平台,后者是面向信号的平台。生成代码的操作如下点击App->Autosarcomponentdesigner.点击Settings->C/C++codegenerationsettings.由于我们用的是adaptiveplatform,系统目标文件改为autosar_adaptive.tlc,工具链为Autosar_Adaptive|CMake,总之尽量选有adaptive的选项。......

2022-07-21 17:53:50 656

原创 CAPL编程

CAPL编程格式

2022-07-18 17:36:21 1131

原创 特殊IP地址

表中的头两项,网络号为0,如主机使用BOOTP协议确定本机IP地址时只能作为初始化过。

2022-07-18 17:29:01 62

原创 Panel Designer教程

在CANoe中有Panel Designer,用于绘制面板,用法和Microsoft Foundation Class(MFC)非常相似,我猜测CANoe软件是使用MFC开发的。在Home->Views中可以调出一些窗口: Symbol explorer, Tool Box, Properties, Output Window. 在这个界面可以浏览signal, message, node. 并且可以拖拽变量到工作区的控件,使得变量和控件关联起来。...............

2022-07-12 17:31:18 1780

原创 Overloaded resolution(多载化决议程序)

多载化决议是在STL实现中的一种技术,例如有多个同名函数实现相似的功能,甚至参数列表难以区分(考虑模板函数)。要区分这些函数使得编译通过,修改函数名不是一种好方法,更好的方法是设置过个标记,增加一个参数接收标记,通过标记来决定用哪个函数。这里会输出T1T3这里T2继承T1,所以对T2的调用转到了对T1的调用。但是如果把注释取消,则会输出T2..........

2022-07-10 22:56:16 106

原创 Winsock(4) UDP

Just as most connection-oriented communication is also streaming, connectionless communication is almost always message-based. Thus, there are some considerations when you're sending and receiving data.

2022-06-22 14:15:40 54

原创 Winsock(3) UDP

Teach you how to construct connectionless communication, such as UDP.

2022-06-21 22:33:31 105

原创 Winsock(2) TCP Client

This is about basic knowledge of TCP client in Windows socket programming.

2022-06-18 10:52:56 423

原创 Winsock(1) TCP Server

This is an article about basic knowledge of Windows socket programing.

2022-06-16 10:22:28 359

原创 Windows窗口应用入门

// WindowsProject1.cpp : 定义应用程序的入口点。//#include "framework.h"#include "WindowsProject1.h"#define MAX_LOADSTRING 100// 全局变量:HINSTANCE hInst; // 当前实例WCHAR szTitle[MAX_LOADSTRING]; // 标题栏文本WCHAR szWin.

2022-03-05 13:36:03 232

Advanced Encryption Standard

Advanced Encryption Standard中文称为AES加密标准。本文件实现AES-128算法,并且容易扩展到192, 256 bit。 The irreducible polynomial of GF(2^8) is m(x) = x^8 + x^4 + x^3 + x + 1 const int Nr = 10; round number const int Nk = 4; the seed has Nk words AES-128 Nr=10, Nk = 4 AES-192 Nr=12, Nk = 6 AES-256 Nr=14, Nk = 8

2023-04-05

TCP客户端:与网站建立TCP连接

用MFC写的TCP客户端,与百度网站建立TCP连接,并接收网站信息。IDC_EDIT2显示本地IP地址以及绑定的端口,这个端口是在connect函数中绑定的,可以看见每次运行这个端口都不一样,尽管服务器那边固定端口号80. IDC_EDIT1显示从服务端接收到的信息。

2022-06-18

MFC标签页控件演示项目

MFC标签页控件演示项目,CTabSheet继承自CTabCtrl,实现了一些标签页功能。

2022-06-13

MFC模态窗口、非模态窗口、树控件的使用

这是Visual Studio的MFC项目,展示了模态窗口、非模态窗口的使用。弹出模态窗口就会阻塞父窗口,并且展示了C++读取鼠标位置的方法。非模态窗口则不会阻塞父窗口。 主窗口展示了树控件的使用方法。

2022-06-11

MFC统计窗口处理ON_PAINT消息次数以及鼠标左键按下时位置、键盘按下的按键并输出在窗口。

MFC统计窗口处理ON_PAINT消息次数以及鼠标左键按下时位置、键盘按下的按键并输出在窗口。一般窗口程序发送WM_PAINT的时机是窗口创建时、改变窗口大小时。为了按下鼠标左键时、键盘按下的按键输出在窗口,应设置在LButtonDown消息以及KeyDown消息处理中发送WM_PAINT给窗口。 CMainWindow类有数据成员px,py,key,分别是鼠标按下左键所在的位置(x,y)以及键盘按键。

2022-06-05

Windows窗口程序发送消息WM_PAINT的时机的实验

这是个MFC程序,检测Windows窗口程序发送消息WM_PAINT的时机,根据检测到WM_PAINT的次数绘制椭圆,从而确定发送消息WM_PAINT的时机。 经过实验,发送WM_PAINT的时机是窗口创建时、改变窗口大小时。 窗口的坐标系为左上角为(0,0),(x,y)表示窗口中在(0,0)右边x个像素,下边y个像素的点。程序会显示鼠标左键点击的x,y坐标。cnt是处理WM_PAINT消息的次数。

2022-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除