九线性相关性,向量空间的基,维数Ax=0什么情况下无解(x不为零向量)1.向量组的线性无关性2.向量组生成一个空间(S)3.向量空间的一组基:都满足向量个数相同4.空间维数=基向量的个数Ax=0什么情况下无解(x不为零向量)Ax=0无解,当且仅当,A矩阵通过消元后,转化为单位矩阵,没有自由变量。A的矩阵大小为m∗n,当m
MATLAB基础应用精讲-【数模应用】主成分(pca)分析(附python代码实现)
林聪木
matlab人工智能大数据
目录前言知识储备降维概述算法原理什么是PCAPCA降维过程PCA算法数学步骤选择主成分个数(即k的值)sklearn中参数的解释数学模型协方差协方差矩阵编辑编辑原理推导编辑编辑编辑编辑实际操作主成分分析的计算方法方法1.协方差+特征值分解方法2:奇异值分解对比不同方法计算效率物理意义算法步骤SPSSAU主成分(pca)分析说明1、信息浓缩2、权重计算3、综合得分【综合竞争力】疑难解惑成分得分后用于
线性代数(13)——向量空间、维度和四大子空间(下)
Jakob_Hu
线性代数
向量空间、维度和四大子空间零空间的基和秩-零化度定理零空间及零空间的基秩-零化度定理列空间与零空间对比零空间与矩阵的逆深入理解零空间左零空间回顾已有的三个子空间第四个子空间研究子空间的意义零空间的基和秩-零化度定理零空间及零空间的基一个齐次线性系统A⋅x=0A\cdotx=0A⋅x=0的解就是对应的系数矩阵的零空间。首先通过一个简单的齐次线性方程组进行演示,(−1231−4−13−354)⟹(10
【大模型】fp32 和 fp16 的区别,混合精度的原理。
深度求索者
pythonpytorch
LLMs浮点数一、fp32和fp16的区别,混合精度的原理1.fp32与fp16的对比特性fp32(单精度)fp16(半精度)位数32位(4字节)16位(2字节)内存占用高低(仅为fp32的50%)数值范围约±3.4×10³⁸约±6.5×10⁴精度(尾数)23位(约7位有效十进制数)10位(约3位有效十进制数)用途高精度计算(如梯度更新)高效计算(如矩阵乘法)2.混合精度训练的原理核心思想:结合f
卷积这个词在卷积神经网络中应该怎么理解
abments
人工智能cnn深度学习计算机视觉
卷积的定义数学概念:在数学上,卷积是一种操作,通常用于两个函数之间的运算。对于图像处理而言,这些函数通常是输入图像和一个称为“卷积核”或“滤波器”的小矩阵。在CNN中的应用:卷积操作是通过滑动窗口(卷积核)与输入数据进行点乘并求和来提取特征的。具体步骤定义卷积核:一个卷积核是一个小矩阵,通常为3x3、5x5等尺寸。卷积核中的每个值称为权重(weights),这些权重是通过训练过程优化得到的。滑动窗
SharpGL的视角及投影设置
苜柠
SharpGLc#
#region 注释此函数主要是用来设定当前OpenGL操作的矩阵堆栈目标,由于OpenGL主要是一个大很大的状态机,运算都采用矩阵预算,通过MatrixMode可以设置当前操作的矩阵目标。一般,在需要绘制出对象或要对所绘制对象进行几何变换时,需要将变换矩阵设置成模型视图模式;而当需要对绘制的对象设置某种投影方式时,则需要将变换矩阵设置成投影模式;只有在进行纹理映射时,才需要将变换矩阵设置成纹理模
[HOT 100] 1901. 寻找峰值 ii
水蓝烟雨
算法HOT100
文章目录1.题目链接2.题目描述3.题目示例4.解题思路5.题解代码6.复杂度分析1.题目链接1901.寻找峰值II-力扣(LeetCode)2.题目描述一个2D网格中的峰值是指那些严格大于其相邻格子(上、下、左、右)的元素。给你一个从0开始编号的mxn矩阵mat,其中任意两个相邻格子的值都不相同。找出任意一个峰值mat[i][j]并返回其位置[i,j]。你可以假设整个矩阵周边环绕着一圈值为-1的
二维前缀和(C++))
落溪于梦
c++开发语言
题目描述:给定一个n×m的矩阵,其中每个元素为整数。你需要回答q个查询,每个查询给出一个矩形区域的左上角(x1,y1)和右下角(x2,y2),你需要计算这个矩形区域内的元素之和。输入格式:第一行包含三个整数n,m,q,分别表示矩阵的行数、列数和查询次数。接下来n行,每行包含m个整数,表示矩阵的元素。接下来q行,每行包含四个整数x1,y1,x2,y2,表示一个查询。输出格式:对于每个查询,输出一个整
【递推】【入门】流感传染
玄湖白虎
算法c++新手村虐菜
题目描述有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。输入第一行一个数字n,n不超过100,表示有n*n的宿舍房间。接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,
科技快讯 | DeepSeek宣布开源DeepGEMM;多个团队开发AI论文反识别技术;OpenAI GPT 4.5现身Android测试版,即将发布
最新科技快讯
科技
DeepSeek宣布开源DeepGEMM财联社2月26日电,Deepseek于开源周第三天宣布开源DeepGEMM。DeepGEMM是一个专为简洁高效的FP8通用矩阵乘法(GEMM)设计的库,具有细粒度缩放功能,如DeepSeek-V3中所提出。它支持普通和混合专家(MoE)分组的GEMM。该库采用CUDA编写,在安装过程中无需编译,通过使用轻量级的即时编译(JIT)模块在运行时编译所有内核。FP
在Python中高效操作三维和四维数组相乘:人工智能基础 NumPy部分
秋.
pythonnumpy开发语言人工智能
一、前言在深度学习、科学计算和数据分析领域,处理高维数组是家常便饭。本文将深入探讨三维和四维数组的相乘操作,通过NumPy库演示各种实用技巧。二、核心概念梳理1.数组维度理解三维数组:(层,行,列)可理解为多个二维矩阵的堆叠四维数组:(批次大小,通道数,高度,宽度)常见于图像处理2.关键函数对比函数特性说明支持维度np.multiply元素级相乘任意np.dot标准矩阵点积≤2np.matmul广
python数据预处理技术与实践期末考试_Python机器学习手册:从数据预处理到深度学习...
坂田月半
内容简介O'ReillyMedia,Inc.介绍第1章向量、矩阵和数组1.0简介1.1创建一个向量1.2创建一个矩阵1.3创建一个稀疏矩阵1.4选择元素1.5展示一个矩阵的属性1.6对多个元素同时应用某个操作1.7找到最大值和最小值1.8计算平均值、方差和标准差1.9矩阵变形1.10转置向量或矩阵1.11展开一个矩阵1.12计算矩阵的秩1.13计算行列式1.14获取矩阵的对角线元素1.15计算矩阵
matlab怎么定义矩阵函数,怎么在matlab定义一个函数,而这个函数输入值是矩阵,并且输出的值也是相应的矩阵?...
聚合收藏
matlab怎么定义矩阵函数
答:建立M文件:functiony=f(x)y=f(x);end然后就可以直接使用函数了。答:你完全不懂matlab呀,直接给你codefunction[tltrblbr]=corners(A)tl=A(1,1);tr=A(1,end);bl=A(end,1);br=A(end,end);end使用这个函数只需要A=[123;456];[tltrblbr]=corners(A)答:把循环计算的值存
【深度学习】矩阵的核心问题&解析
大数据追光猿
数学基础-矩阵深度学习矩阵人工智能
一、基础问题1.如何实现两个矩阵的乘法?问题描述:给定两个矩阵AAA和BBB,编写代码实现矩阵乘法。解法:使用三重循环实现标准矩阵乘法。或者使用NumPy的dot方法进行高效计算。defmatrix_multiply(A,B):m,n=len(A),len(A[0])n,p=len(B),len(B[0])C=[[0for_inrange(p)]for_inrange(m)]foriinrange
Python数据分析 NumPy矩阵与通用函数及统计分析 ② 第二节
修仙宝哥
python数据分析numpy
NumPy矩阵与通用函数及统计分析案例NumPy矩阵与通用函数及统计分析一、掌握NumPy矩阵与通用函数代码2-30:矩阵的创建代码2-31:数组的创建与组合代码2-32:矩阵的运算代码2-33:矩阵的转置、逆矩阵和二维数组视图代码2-34:数组的基本运算代码2-35:数组的比较运算代码2-36:数组的逻辑运算代码2-37:数组的广播相加(一维数组加到二维数组)代码2-38:数组的广播相加(一维数
【人工智能】数据挖掘与应用题库(101-200)
奋力向前123
人工智能人工智能数据挖掘
1、有矩阵A3×2,B2×3,C3×3,下列运算有意义的是()答案:BC2、13524的逆序数为()答案:33、矩阵A中元素a14的余子式记作M14,代数余子式记作A14,二者关系为()答案:相反4、关于机器学习与深度学习的范畴关系,下列说法正确的是?答案:深度学习是机器学习的子集(分支)5、关于机器学习的本质,下列表述最恰当的是?答案:从数据或环境反馈中自主学习到规则6、深度学习的“深度”是指?
python中的“@”与“*”运算符
汤姆_布利柏
pythonnumpy
1、@运算符@运算符是对矩阵进行矩阵乘法(即数学上的矩阵相乘)来用的。1.1、二维方阵生成二维矩阵a和b:importnumpyasnpa=np.arange(1,10).reshape(3,3)print(a)print(a.shape)print(type(a))print(a.dtype)[[123][456][789]](3,3)int32b=np.array(np.arange(0,9)
python中@运算符和*运算符在矩阵乘法中的区别与作用
zeeq_
python矩阵python线性代数
我们在看python程序时,经常可以看到@运算符和*运算符,其中@运算符在传统python中通常是作为装饰器使用的。但是在Python3.5之后,它又具备了矩阵乘法运算的功能。下面使用示例来对比这两个运算符对矩阵运算的影响: 导入用到numpy包:importnumpyasnp 创建一个维度为2×3×3的数组a,结果如下图所示:a=np.arange(1,10).reshape(
小白学Python:Numpy(二)
洲洲的笔记
小白学Pythonpythonnumpy数据分析
目录引言数组的基本数学运算数组变换总结引言NumPy库是Python中用于科学计算的核心库。它提供了一个高性能多维数组对象,以及使用和处理这些数组的工具。Numpy是每一位学习python的小伙伴的必修课,因为它真的真的太实用了。举几个例子:我们在线性代数中学习的向量就是一维数组,矩阵就是二维数组,而Numpy就是专业来处理数组的,因此我们可以使用Numpy进行向量和矩阵的运算。图片本质上都可以用
Python 中@ 矩阵乘法运算符详细讲解
Charonrise
python矩阵开发语言
在Python中,@是矩阵乘法运算符,它用于矩阵与矩阵之间的乘法运算,也可以用于矩阵与向量之间的乘法。它是在Python3.5中引入的,用来专门处理线性代数中的矩阵乘法运算。1.基本用法@运算符的作用等价于numpy中的np.dot()或np.matmul()函数。例如:importnumpyasnp#定义两个矩阵A=np.array([[1,2],[3,4]])B=np.array([[5,6]
LeetCode 热题100-70-搜索二维矩阵Ⅱ
一条吃猫的鱼
Leetcode热题100
核心思想:z字形搜索思路:我们可以从矩阵matrix的右上角(0,n−1)进行搜索。在每一步的搜索过程中,如果我们位于位置(x,y),那么我们希望在以matrix的左下角为左下角、以(x,y)为右上角的矩阵中进行搜索,即行的范围为[x,m−1],列的范围为[0,y]:如果matrix[x,y]=target,说明搜索完成;如果matrix[x,y]>target,由于每一列的元素都是升序排列的,那
【学写LibreCAD】0 仿写LibreCAD简介
Source.Liu
CXXc++rustLibreCAD
一、LibreCAD核心模块:核心模块(Core)功能:处理CAD的核心逻辑,如几何计算、图形对象管理、坐标系转换等。关键组件:图形对象:如直线、圆、圆弧、多段线等。数学工具:向量、矩阵、几何计算等。文档管理:管理当前打开的CAD文档及其内容。用户界面模块(UI)功能:提供图形用户界面(GUI),包括菜单、工具栏、绘图区域等。关键组件:主窗口:包含菜单栏、工具栏、状态栏等。绘图区域:显示和编辑CA
⭐算法OJ⭐矩阵的相关操作【深度优先搜索 DFS + 回溯】(C++ 实现)Unique Paths 系列
Vitalia
C/C++算法OJ算法矩阵深度优先
980.UniquePathsIIIYouaregivenanmxnintegerarraygridwheregrid[i][j]couldbe:1representingthestartingsquare.Thereisexactlyonestartingsquare.2representingtheendingsquare.Thereisexactlyoneendingsquare.0repr
矩阵迹(Trace)的性质及简单推导
SimpleLearing
Math矩阵线性代数
1.基础定义迹(Trace)是一个矩阵的对角线元素之和。对于矩阵AAA,其迹定义为:Trace(A)=∑iAii\text{Trace}(A)=\sum_{i}A_{ii}Trace(A)=i∑Aii迹的一个重要性质是:Trace(AB)=Trace(BA)\text{Trace}(AB)=\text{Trace}(BA)Trace(AB)=Trace(BA)即两个矩阵相乘后的迹不依赖于它们的顺序
[黑洞与暗粒子]没有光的世界
comsci
无论是相对论还是其它现代物理学,都显然有个缺陷,那就是必须有光才能够计算
但是,我相信,在我们的世界和宇宙平面中,肯定存在没有光的世界....
那么,在没有光的世界,光子和其它粒子的规律无法被应用和考察,那么以光速为核心的
&nbs
jQuery Lazy Load 图片延迟加载
aijuans
jquery
基于 jQuery 的图片延迟加载插件,在用户滚动页面到图片之后才进行加载。
对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度。
版本:
jQuery v1.4.4+
jQuery Lazy Load v1.7.2
注意事项:
需要真正实现图片延迟加载,必须将真实图片地址写在 data-original 属性中。若 src
使用Jodd的优点
Kai_Ge
jodd
1. 简化和统一 controller ,抛弃 extends SimpleFormController ,统一使用 implements Controller 的方式。
2. 简化 JSP 页面的 bind, 不需要一个字段一个字段的绑定。
3. 对 bean 没有任何要求,可以使用任意的 bean 做为 formBean。
使用方法简介
jpa Query转hibernate Query
120153216
Hibernate
public List<Map> getMapList(String hql,
Map map) {
org.hibernate.Query jpaQuery = entityManager.createQuery(hql);
if (null != map) {
for (String parameter : map.keySet()) {
jp
Django_Python3添加MySQL/MariaDB支持
2002wmj
mariaDB
现状
首先,
[email protected] 中默认的引擎为 django.db.backends.mysql 。但是在Python3中如果这样写的话,会发现 django.db.backends.mysql 依赖 MySQLdb[5] ,而 MySQLdb 又不兼容 Python3 于是要找一种新的方式来继续使用MySQL。 MySQL官方的方案
首先据MySQL文档[3]说,自从MySQL
在SQLSERVER中查找消耗IO最多的SQL
357029540
SQL Server
返回做IO数目最多的50条语句以及它们的执行计划。
select top 50
(total_logical_reads/execution_count) as avg_logical_reads,
(total_logical_writes/execution_count) as avg_logical_writes,
(tot
spring UnChecked 异常 官方定义!
7454103
spring
如果你接触过spring的 事物管理!那么你必须明白 spring的 非捕获异常! 即 unchecked 异常! 因为 spring 默认这类异常事物自动回滚!!
public static boolean isCheckedException(Throwable ex)
{
return !(ex instanceof RuntimeExcep
mongoDB 入门指南、示例
adminjun
javamongodb操作
一、准备工作
1、 下载mongoDB
下载地址:http://www.mongodb.org/downloads
选择合适你的版本
相关文档:http://www.mongodb.org/display/DOCS/Tutorial
2、 安装mongoDB
A、 不解压模式:
将下载下来的mongoDB-xxx.zip打开,找到bin目录,运行mongod.exe就可以启动服务,默
CUDA 5 Release Candidate Now Available
aijuans
CUDA
The CUDA 5 Release Candidate is now available at http://developer.nvidia.com/<wbr></wbr>cuda/cuda-pre-production. Now applicable to a broader set of algorithms, CUDA 5 has advanced fe
Essential Studio for WinRT网格控件测评
Axiba
JavaScripthtml5
Essential Studio for WinRT界面控件包含了商业平板应用程序开发中所需的所有控件,如市场上运行速度最快的grid 和chart、地图、RDL报表查看器、丰富的文本查看器及图表等等。同时,该控件还包含了一组独特的库,用于从WinRT应用程序中生成Excel、Word以及PDF格式的文件。此文将对其另外一个强大的控件——网格控件进行专门的测评详述。
网格控件功能
1、
java 获取windows系统安装的证书或证书链
bewithme
windows
有时需要获取windows系统安装的证书或证书链,比如说你要通过证书来创建java的密钥库 。
有关证书链的解释可以查看此处 。
public static void main(String[] args) {
SunMSCAPI providerMSCAPI = new SunMSCAPI();
S
NoSQL数据库之Redis数据库管理(set类型和zset类型)
bijian1013
redis数据库NoSQL
4.sets类型
Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是O(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。
sadd:向名称为key的set中添加元
异常捕获何时用Exception,何时用Throwable
bingyingao
用Exception的情况
try {
//可能发生空指针、数组溢出等异常
} catch (Exception e) {
 
【Kafka四】Kakfa伪分布式安装
bit1129
kafka
在http://bit1129.iteye.com/blog/2174791一文中,实现了单Kafka服务器的安装,在Kafka中,每个Kafka服务器称为一个broker。本文简单介绍下,在单机环境下Kafka的伪分布式安装和测试验证 1. 安装步骤
Kafka伪分布式安装的思路跟Zookeeper的伪分布式安装思路完全一样,不过比Zookeeper稍微简单些(不
Project Euler
bookjovi
haskell
Project Euler是个数学问题求解网站,网站设计的很有意思,有很多problem,在未提交正确答案前不能查看problem的overview,也不能查看关于problem的discussion thread,只能看到现在problem已经被多少人解决了,人数越多往往代表问题越容易。
看看problem 1吧:
Add all the natural num
Java-Collections Framework学习与总结-ArrayDeque
BrokenDreams
Collections
表、栈和队列是三种基本的数据结构,前面总结的ArrayList和LinkedList可以作为任意一种数据结构来使用,当然由于实现方式的不同,操作的效率也会不同。
这篇要看一下java.util.ArrayDeque。从命名上看
读《研磨设计模式》-代码笔记-装饰模式-Decorator
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.Fi
Maven学习(一)
chenyu19891124
Maven私服
学习一门技术和工具总得花费一段时间,5月底6月初自己学习了一些工具,maven+Hudson+nexus的搭建,对于maven以前只是听说,顺便再自己的电脑上搭建了一个maven环境,但是完全不了解maven这一强大的构建工具,还有ant也是一个构建工具,但ant就没有maven那么的简单方便,其实简单点说maven是一个运用命令行就能完成构建,测试,打包,发布一系列功
[原创]JWFD工作流引擎设计----节点匹配搜索算法(用于初步解决条件异步汇聚问题) 补充
comsci
算法工作PHP搜索引擎嵌入式
本文主要介绍在JWFD工作流引擎设计中遇到的一个实际问题的解决方案,请参考我的博文"带条件选择的并行汇聚路由问题"中图例A2描述的情况(http://comsci.iteye.com/blog/339756),我现在把我对图例A2的一个解决方案公布出来,请大家多指点
节点匹配搜索算法(用于解决标准对称流程图条件汇聚点运行控制参数的算法)
需要解决的问题:已知分支
Linux中用shell获取昨天、明天或多天前的日期
daizj
linuxshell上几年昨天获取上几个月
在Linux中可以通过date命令获取昨天、明天、上个月、下个月、上一年和下一年
# 获取昨天
date -d 'yesterday' # 或 date -d 'last day'
# 获取明天
date -d 'tomorrow' # 或 date -d 'next day'
# 获取上个月
date -d 'last month'
#
我所理解的云计算
dongwei_6688
云计算
在刚开始接触到一个概念时,人们往往都会去探寻这个概念的含义,以达到对其有一个感性的认知,在Wikipedia上关于“云计算”是这么定义的,它说:
Cloud computing is a phrase used to describe a variety of computing co
YII CMenu配置
dcj3sjt126com
yii
Adding id and class names to CMenu
We use the id and htmlOptions to accomplish this. Watch.
//in your view
$this->widget('zii.widgets.CMenu', array(
'id'=>'myMenu',
'items'=>$this-&g
设计模式之静态代理与动态代理
come_for_dream
设计模式
静态代理与动态代理
代理模式是java开发中用到的相对比较多的设计模式,其中的思想就是主业务和相关业务分离。所谓的代理设计就是指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。比如我们在进行删除操作的时候需要检验一下用户是否登陆,我们可以删除看成主业务,而把检验用户是否登陆看成其相关业务
【转】理解Javascript 系列
gcc2ge
JavaScript
理解Javascript_13_执行模型详解
摘要: 在《理解Javascript_12_执行模型浅析》一文中,我们初步的了解了执行上下文与作用域的概念,那么这一篇将深入分析执行上下文的构建过程,了解执行上下文、函数对象、作用域三者之间的关系。函数执行环境简单的代码:当调用say方法时,第一步是创建其执行环境,在创建执行环境的过程中,会按照定义的先后顺序完成一系列操作:1.首先会创建一个
Subsets II
hcx2013
set
Given a collection of integers that might contain duplicates, nums, return all possible subsets.
Note:
Elements in a subset must be in non-descending order.
The solution set must not conta
Spring4.1新特性——Spring缓存框架增强
jinnianshilongnian
spring4
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
shell嵌套expect执行命令
liyonghui160com
一直都想把expect的操作写到bash脚本里,这样就不用我再写两个脚本来执行了,搞了一下午终于有点小成就,给大家看看吧.
系统:centos 5.x
1.先安装expect
yum -y install expect
2.脚本内容:
cat auto_svn.sh
#!/bin/bash
Linux实用命令整理
pda158
linux
0. 基本命令 linux 基本命令整理
1. 压缩 解压 tar -zcvf a.tar.gz a #把a压缩成a.tar.gz tar -zxvf a.tar.gz #把a.tar.gz解压成a
2. vim小结 2.1 vim替换 :m,ns/word_1/word_2/gc  
独立开发人员通向成功的29个小贴士
shoothao
独立开发
概述:本文收集了关于独立开发人员通向成功需要注意的一些东西,对于具体的每个贴士的注解有兴趣的朋友可以查看下面标注的原文地址。
明白你从事独立开发的原因和目的。
保持坚持制定计划的好习惯。
万事开头难,第一份订单是关键。
培养多元化业务技能。
提供卓越的服务和品质。
谨小慎微。
营销是必备技能。
学会组织,有条理的工作才是最有效率的。
“独立
JAVA中堆栈和内存分配原理
uule
java
1、栈、堆
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基本类型常量(public static f