摘要: Table of Contents1 Inf 2 min函数 3 左除右除\/ 4 求特征值 eig 4.1 判断矩阵是否正定 5 Cholesky分解-chol 5.1 判断矩阵是否正定 6 依赖域子方法-trust 1 Inf表示无穷大2 min函数 min(A) 若A为一维向量则返回A中最大的元素若A为二维矩阵,则将每列元素的最小值组成一个一维向量做为返回值min(A, B) A与B的维数必须相同,返回一个与A和B维数相同的向量,该向量的每个元素为A和B相应位置元素的最小值。>> min([1 2 3 4],[4 3 2 1])ans = 1 2 2 1>... 阅读全文
posted @ 2012-03-18 13:46 visayafan 阅读(545) 评论(0) 推荐(0) 编辑
摘要: Kruskal算法思想: 把n个顶点看成看成n棵分离的树(每棵树只有一个顶点),每次选取可连接两个分离树中权值最小的边把两个分离的树合成一个新的树取代原来的两个分离树,如果重复n-1步后便得到最小生成树。Kruskal算法步骤:T0存放生成树的边,初值为空C(T0) 最小生成树的权,初值为0VS 分离树顶点的集合,初值为 { {v1} {v2} … {vn} }A B W分别为边的顶点和权值数组,由用户输入1) T0←0, C(T0)←0, VS←{ {v1} {v2} … {vn} }, A, B, W按W排序后构成队列Q2) If n(VS)==1 then stop else goto 阅读全文
posted @ 2012-02-25 00:34 visayafan 阅读(8583) 评论(0) 推荐(1) 编辑
摘要: http://linux.chinaitlab.com/administer/836984.html物理地址 物理内存的地址,为32位或者64位。虚拟地址 现代OS都提供一技术——虚拟内存,它可以使给用户错觉好像自己在使用比实际物理内存大得多的内存,实际上通过映射把虚拟内存的虚拟地址转化为物理内存的物理地址。 多个进程可以使用相同的虚拟地址,是因为转化的时候把各自的虚拟地址映射到了不同的物理地址。逻辑地址 包含在机器语言指令中用来指定一个操作数或一条指令的地址。这种寻址方式在80X86著名的分段结构中表现的尤为具体,它促使MS-DOS或Windows程序员把程序分成若干段。每一个逻辑地... 阅读全文
posted @ 2011-12-26 13:31 visayafan 阅读(1388) 评论(0) 推荐(0) 编辑
摘要: 1、为什么要使用反向映射 物理内存的分页机制,一个PTE(Page Table Entry)对应一个物理页,但一个物理页可以由多个PTE与之相对应,当该页要被回收时,Linux2.4的做法是遍历每个进程的所有PTE判断该PTE是否与该页建立了映射,如果建立则取消该映射,最后无PTE与该相关联后才回收该页。该方法显而易见效率极低,因为其为了查找某个页的关联PTE遍历了所有的PTE,我们不禁想:如果把每个页关联的PTE保存在页结构里面,每次只需要访问那些与之相关联的PTE不很方便吗?确实,2.4之后确实采用过此方法,为每个页结构(Page)维护一个链表,这样确实节省了时间,但此链表所占用的空间及. 阅读全文
posted @ 2011-12-24 23:43 visayafan 阅读(6175) 评论(1) 推荐(1) 编辑
摘要: 看了半天也看不懂……好像有点明白了:有时候看源码最让人头疼的不是它的语言或者逻辑,而是它所使用的算法。先mark下来,先研究下基树再来看这篇文章。转自http://laokaddk.blog.51cto.com/blog/368606/433768address_space结构体,是页高速缓存(page cache)的核心数据结构。在很多时候,内核在读写磁盘时都引用页高速缓存,新页被追加到页高速缓存以满足用户态进程的读请求。如果页不在高速缓存中,新页就被追加到高速缓存。这样作的目的就是为了更快的效率,比如有一些页,经常被访问,那么此时,如果内存空间允许的话,可以考虑让它们长期驻留在页高速缓存中 阅读全文
posted @ 2011-12-15 23:31 visayafan 阅读(2132) 评论(0) 推荐(0) 编辑
摘要: 哥今生不想再看到这段代码!!!#define switch_to(prev, next, last) \do { \/* \ * Context-switching clobbers(彻底击败) all registers, so we clobber \ * them explicitly, via unused output variables. \ * (EAX and EBP is not listed because EBP is saved/restored \ * explicitly for wchan access and EA... 阅读全文
posted @ 2011-12-10 23:50 visayafan 阅读(8321) 评论(0) 推荐(0) 编辑
摘要: Table of Contents1 时间类型。 2 时间操作 3 延时函数 1 时间类型。Linux下常用的时间类型有4个:time_t,struct timeval,struct timespec,struct tm。time_t是一个长整型,一般用来表示用1970年以来的秒数。truct timeval有两个成员,一个是秒,一个是微妙。struct timeval{ long tv_sec; long tv_usec;};struct timespec有两个成员,一个是秒,一个是纳秒。struct timespec{ time_t tv_sec; long tv_... 阅读全文
posted @ 2011-12-10 17:28 visayafan 阅读(2566) 评论(1) 推荐(1) 编辑
摘要: 转自:http://www.ibm.com/developerworks/cn/linux/l-affinity.html简单地说,CPU 亲和性(affinity)就是进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性。Linux 内核进程调度器天生就具有被称为软 CPU 亲和性(affinity)的特性,这意味着进程通常不会在处理器之间频繁迁移。这种状态正是我们希望的,因为进程迁移的频率小就意味着产生的负载小。2.6 版本的 Linux 内核还包含了一种机制,它让开发人员可以编程实现硬 CPU 亲和性(affinity)。这意味着应用程序可以显式地指定进程在哪个( 阅读全文
posted @ 2011-12-10 16:04 visayafan 阅读(13841) 评论(1) 推荐(1) 编辑
摘要: 转自:http://www.ibm.com/developerworks/cn/linux/kernel/l-kn26sch/index.html1. 前言Linux 的市场非常广阔,从桌面工作站到低端服务器,它都是任何商用操作系统的有力竞争对手。目前,Linux 正全力进军嵌入式系统和高端服务器系统领域,但它的技术缺陷限制了它的竞争力:缺乏对实时任务的支持,多处理机可扩展性差。在 2.4 内核中,造成这两个弱项的关键原因之一就是调度器设计上的缺陷。2.6 调度系统从设计之初就把开发重点放在更好满足实时性和多处理机并行性上,并且基本实现了它的设计目标。主要设计者,传奇式人物 Ingo Moln 阅读全文
posted @ 2011-12-10 11:47 visayafan 阅读(674) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.ibm.com/developerworks/cn/linux/l-cn-schldom/Scheduling Domains 引入的背景Scheduling Domains 是现代硬件技术尤其是多 CPU 多核技术发展的产物。现在,一个复杂的高端系统由上到下可以这样构成:它是一个 NUMA 架构的系统,系统中的每个 Node 访问系统中不同区域的内存有不同的速度。同时它又是一个 SMP 系统。由多个物理 CPU(Physical Package) 构成。这些物理 CPU 共享系统中所有的内存。但都有自己独立的 Cache 。每个物理 CPU 又由多个核 (Core) 阅读全文
posted @ 2011-12-10 00:04 visayafan 阅读(4679) 评论(0) 推荐(1) 编辑
摘要: Table of Contents1 convential process 1.1 static priority 1.2 dynamic priority 2 real-time process 2.1 static priority 2.2 dynamic priority 2.3 real time priority 3 调度策略 1 convential process1.1 static priority范围为100-139(MAX_RT_PRIO - MAX_PRIO-1) 内核2.6中的静态优先级相当于内核2.4中的nice值,但转到MAX_RT_PRIO到MAX_PRIO-1取 阅读全文
posted @ 2011-12-08 11:25 visayafan 阅读(3563) 评论(0) 推荐(0) 编辑
摘要: 函数typeid()返回值类型class type_info。其中type_info重载了操作符==, !=, =分别用来比较是否相等、不等、赋值。函数name()返回类型名称。class type_info {public: virtual ~type_info(); booloperator== (consttype_info& rhs) const; booloperator!= (consttype_info& rhs) const; boolbefore (consttype_info& rhs) const; constchar* name() const; 阅读全文
posted @ 2011-11-29 20:29 visayafan 阅读(7875) 评论(0) 推荐(1) 编辑
摘要: 下面的代码可以说明一切:默认情况下模板内的基本类型(int float ...)是不会自动初始化为0的(不像一般函数/类中),要想实现其自动初始化可以在模板函数中T x = T(); 在类中可以在构造函数列表中: x(), y()....#include <iostream>using namespace std;template <typename T>void f(const T&){ // T x = T(); //对比可知,此时输出为0,而下面输出为一个未知数 T x; cout<<x<<endl;}template <ty 阅读全文
posted @ 2011-11-29 20:04 visayafan 阅读(1457) 评论(0) 推荐(0) 编辑
摘要: 参考自《C++ Template》一书,解释得很详细,英语也比较简单应该可以看懂,如果看不懂得话可以找侯捷的翻译版本。 5.4 Template Template Parameters It can be useful to allow a template parameter itself to be a class template. Again, our stack class template can be used as an example. 模板参数列表里面可以存在模板,称之为模板参数模板。 To use a different internal container for st 阅读全文
posted @ 2011-11-29 19:37 visayafan 阅读(6014) 评论(0) 推荐(0) 编辑
摘要: 参考《Effective C++》条款42:Understand the two meaning of typenameTable of Contents1 模板参数列表中与class关键字可相互替换 2 嵌套从属名称(nested dependent names) 3 是嵌套从属名称但不用加typename的两种情况 1 模板参数列表中与class关键字可相互替换template<typename T>template<class T>是一样的2 嵌套从属名称(nested dependent names)假如template内出现的名称如果依赖于某个模板参数,则称其 阅读全文
posted @ 2011-11-29 18:53 visayafan 阅读(1462) 评论(0) 推荐(0) 编辑
摘要: typedef int (*PF)(const char* , const char*);PF Register(PF pf);等价于:int (*Register (int (*pf)(const char *, const char *))) (const char *, const char *);Register是个函数指针,其参数是个返回int型的函数指针pf,pd参数为(const char*, const char*) Register函数指针的返回值又是个函数指针,返回值的函数指针的参数是(const char*, const char*),返回值是int 唉………… 用typ 阅读全文
posted @ 2011-11-27 23:25 visayafan 阅读(1703) 评论(0) 推荐(0) 编辑
摘要: Table of Contents1 模板参数推导在迭代器中的使用 2 模板参数引用与非引用的区别 1 模板参数推导在迭代器中的使用在算法中运用迭代器时,可能会用到其相应类型(associative type),即迭代器所指向对象的类别。但C++只支持sizeof(),并不存在typeof()之说(即使运用RTTI性质中的typeid()获得的也只是类型名称不能用来做变量声明之用)。为解决此问题,可以利用函数模板(function template)的参数推导(argument deduction)机制:template <class I, class T>void fun_imp 阅读全文
posted @ 2011-11-27 22:56 visayafan 阅读(7673) 评论(1) 推荐(1) 编辑
摘要: It is also possible to define a member template function. Let's look at an example and then walk through it:class PrintIt { public: PrintIt( ostream &os ) : _os( os ){} // a member template function template <typename elemType> void print( const elemType &elem, char delimi... 阅读全文
posted @ 2011-11-27 22:14 visayafan 阅读(1768) 评论(0) 推荐(0) 编辑
摘要: 不翻译了,比较简单。这个 《ANSI/ISO C++ Professional Programmer's Handbook 》是这样说的 explicit Constructors A constructor that takes a single argument is, by default, an implicit conversion operator, which converts its argument to an object of its class (see also Chapter 3, "Operator Overloading"). Exa 阅读全文
posted @ 2011-11-27 22:06 visayafan 阅读(664) 评论(0) 推荐(0) 编辑
摘要: /* auto_ptr是智能指引,可以自我销毁而不像new出来的对象一样需要调用delete销毁。 auto_ptr赋值用引起所有权的交接,作为函数参数或返回值都会引起所有权的交接。 auto_ptr必须显示初始化 auto_ptr<int> p(new int(43)) //ok auto_ptr<int> p = new int(43) //error auto_ptr<int> p; p = new int(43); //error p = auto_ptr<int>(43) //ok auto_ptr的函数: Type* release( 阅读全文
posted @ 2011-11-24 16:23 visayafan 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 尽管函数名和参数列表都相同,void foo( ) const成员函数是可以与void foo( )并存的,可以形成重载! 我们假设调用语句为obj.foo(),如果obj为non-const对象,则调用foo()。如果obj为const对象,则调用foo()const。另外要注意,假如没有提供foo()const,则const obj调用foo()将会报错。但假如是没有提供foo(),则non-const obj调用foo()const是完全没有问题的。也就是说,non-const对象可以调用const函数,但const对象不能调用non-const函数.const关键字所起作用的本质,就是 阅读全文
posted @ 2011-11-24 15:55 visayafan 阅读(2057) 评论(1) 推荐(0) 编辑
摘要: http://bbs.chinaunix.net/viewthread.php?tid=3621368&from=favoritesUnix技术网的牛人就是多啊~~~一题目:有文本文件含5条序列(每行一条)GAGCATTCAGCATGACCATCCAGCTTGACCATCCTGGTAGACGATCTAGCATAGGCATCATGCAA要求对这些序列两两对比如果字符一样 就在下方标*号 以一二条序列为例,输出如下:GAGCATTCAGCATGACCATCCAGCTT** ********The number of * =10输出所有两两对比数据1. 1 chomp(@ARGV = < 阅读全文
posted @ 2011-11-24 11:49 visayafan 阅读(641) 评论(0) 推荐(0) 编辑
摘要: Table of Contents1 JList 2 构造函数 3 ListMode 3.1 DefaultListMode 3.1.1 addElement(E element) 3.1.2 add(int index, E element) 4 JList 几个函数 4.1 getSelectedValues() 4.2 getSelectedIndices() 5 addListSelectionListener(ListSelectionListener) 5.1 ListSelectionListener 5.2 valueChanged(ListSelectionEvent e) 阅读全文
posted @ 2011-11-21 11:42 visayafan 阅读(4086) 评论(0) 推荐(0) 编辑
摘要: Table of Contents1 例子代码与结果 2 javax.swing.border 3 BorderFactory 4 LineBorder 5 MatteBorder 6 TitleBorder 7 BevelBorder 8 SoftBevelBorder 9 EtchedBorder 10 CompoundBorder 1 例子代码与结果package xjtu.vf.swing;import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import javax.swing.*; 阅读全文
posted @ 2011-11-20 22:05 visayafan 阅读(15862) 评论(0) 推荐(1) 编辑
摘要: Table of Contents1 JButton 1.1 JToggleButton 1.2 JCheckBox 1.3 JRadioButton 1.4 BasicArrowButton 1.5 setPressedIcon(Icon pressIcon) 1.6 setDisabledIcon(Icon disableIcon) 1.7 setToolTipText(String text) 2 JTextField 2.1 addActionListener(ActionEvent t) 2.2 setDocument(Document doc) 3 Document 3.1 add 阅读全文
posted @ 2011-11-20 21:24 visayafan 阅读(2595) 评论(0) 推荐(0) 编辑
摘要: 1 Tie::File建立一个list和file的关系,对list的操作会反映到file上去。use Tie::File;tie @array, 'Tie::File', filename or die ...;$array[13] = 'blah'; # line 13 of the file is now 'blah'print $array[42]; # display line 42 of the file$n_recs = @array; # how many records are in the file?$#array -= 2; 阅读全文
posted @ 2011-10-29 16:48 visayafan 阅读(3562) 评论(0) 推荐(0) 编辑
摘要: 1 Path::File中两个函数的基本使用 2 代码举例: 3 more help 1 Path::File中两个函数的基本使用make_path( $dir1, $dir2, .... )make_path( $dir1, $dir2, ...., \%opts ) #\%opts表示哈希引用mkpath( $dir )mkpath( $dir, $verbose, $mode )mkpath( [$dir1, $dir2,...], $verbose, $mode )mkpath( $dir1, $dir2,..., \%opt )mode => $num 每个创建目录的权限位,默 阅读全文
posted @ 2011-10-29 15:53 visayafan 阅读(4338) 评论(0) 推荐(0) 编辑
摘要: 1 数组与引用 2 声明的区别 3 访问的区别 4 添加行元素 5 添加列元素 6 访问与打印 6.1 运算符优先级 6.2 访问一个 6.3 遍历 7 切片 1 数组与引用此处引用相当于C中的指针。 二维数组第一列不存储具体元素而是存储指向该行一维数组的引用。2 声明的区别数组用如下形式声明: 数组名前加@,之后用()。my @AoA = ( [ "fred", "barney", "pebbles", "bambam", "dino", ], [ "george", &q 阅读全文
posted @ 2011-10-29 15:02 visayafan 阅读(19719) 评论(0) 推荐(1) 编辑
摘要: 1 simpleprint "It matches\n" if "hello world" =~ /world/;print "It doesn't match\n" if "hello world" !~ /word/;$_ = "hello world";print "it matches\n" if m{world};print "it matches\n" if m!world!;print "it matches\n" 阅读全文
posted @ 2011-10-27 22:05 visayafan 阅读(1153) 评论(0) 推荐(0) 编辑
摘要: 1template specialization 模板特化一般情况下类模板定义如下:template<class Window, class Controller>class Widget{ ... 泛化实现代码 ...};特化是指把类模板中指定的class T变成具体的类型:class Widget<ModalDialog, MyController>{ ... 特化实现代码 ...};其中ModalDialog和MyController是你自己另外定义的类.有了这个Widget的特化定义之后,如果你以后定义了Widget<ModalDialog, MyCont 阅读全文
posted @ 2011-10-21 17:32 visayafan 阅读(2379) 评论(0) 推荐(0) 编辑