小编Kev*_*eid的帖子

Lexical Scoping是如何实现的?

几年前,我开始为一个领域特定语言编写一个解释器,其中包括程序员定义的函数.

起初,我使用一组简单的符号表实现了变量范围.但现在我想转向适当的词法范围(可选择闭包).任何人都可以解释词法范围背后的数据结构和算法吗?

compiler-construction closures programming-languages lexical-scope

8
推荐指数
3
解决办法
2780
查看次数

C中的矢量化Trig功能?

我正在寻找计算高度并行化的trig函数(在1024的块中),并且我想利用至少一些现代架构所具有的并行性.

当我编译一个块

for(int i=0; i<SIZE; i++) {
   arr[i]=sin((float)i/1024);
}
Run Code Online (Sandbox Code Playgroud)

海湾合作委员会不会对其进行矢量化,并表示

not vectorized: relevant stmt not supported: D.3068_39 = __builtin_sinf (D.3069_38);
Run Code Online (Sandbox Code Playgroud)

这对我来说很有意义.但是,我想知道是否有一个库可以进行并行三角计算.

只有一个简单的泰勒系列上升到第11阶,GCC将向所有循环进行矢量化,并且我的速度超过了一个天真的sin循环的速度的两倍(具有精确答案,或者具有9阶系列,只有一个位)关闭1600个值的最后两个,加速> 3倍).我确定有人之前遇到过这样的问题,但是当我谷歌时,我发现没有提及任何库等.

A.是否已存在某些内容?
B.如果没有,建议优化并行触发功能?

编辑:我发现所谓的"SLEEF"以下库:http://shibatch.sourceforge.net/ 其描述文件,并使用SIMD指令来计算几个基本功能.它使用SSE和AVX特定代码,但我认为将其转换为标准C循环并不困难.

c gcc trigonometry vectorization

8
推荐指数
1
解决办法
3122
查看次数

如何获取char数组中元素的地址?

我有一个char数组,我需要获取每个元素的地址.

cout << &charArray
Run Code Online (Sandbox Code Playgroud)

给我一个有效的地址,但是如果我试图获取特定元素的地址,它会吐出垃圾:

cout << &charArray[0]
Run Code Online (Sandbox Code Playgroud)

c++ arrays char memory-address

8
推荐指数
1
解决办法
3466
查看次数

澄清PendingIntent.FLAG_CANCEL_CURRENT的文档

来自Android 中Pending IntentFLAG_CANCEL_CURRENT文档:

通过取消先前的待定意图,这可确保只有给定新数据的实体才能启动它.如果此保证不是问题,请考虑FLAG_UPDATE_CURRENT

任何人都可以解释这条线的含义吗?

android

8
推荐指数
1
解决办法
3046
查看次数

按名称查找符号,包括 VSCode 中的依赖项

在 IntelliJ IDEA 中,当我按 Ctrl+Shift+Alt+N 时,我可以搜索并转到项目中可访问的所有代码中的任何符号。例如,在 Java Maven 项目中,Go To Symbol 将搜索 JDK 标准库中的所有符号、项目的所有 Maven 依赖项以及项目源代码。有没有办法在 VSCode 中搜索/列出/转到类似的符号?

更多背景信息:这是一个通过rust-analyzer扩展实现的 Rust 项目。用例是,我隐约记得某个地方有一个带有特定单词的方法,但我不知道在哪里(stdlib?依赖板条箱?我的代码?)。我想输入该单词并获取与其匹配的所有符号的列表。

rust visual-studio-code rust-analyzer

8
推荐指数
1
解决办法
1225
查看次数

使用Lucene Highlighter和MultiFieldQueryParser

我使用Lucene Highlighter来突出我在Lucene Index中找到的匹配.现在,我的问题是,如果我必须搜索文档的多个字段,并且我需要显示匹配的文本,那么如何才能获得命中发生的字段?

我用于荧光笔的代码基本上就是这里的第二个功能

如果我不知道命中发生在哪个字段中,那么我将传递给上面定义的函数哪个字段来获取匹配的片段?

lucene parsing lucene-highlighter

7
推荐指数
1
解决办法
943
查看次数

如何在WebGL中读取深度缓冲区?

使用WebGL API,我如何从深度缓冲区获取值,或以任何其他方式从屏幕坐标确定3D坐标(即找到点击的位置),而不是通过执行我自己的光线投射?

opengl-es depth-buffer webgl

7
推荐指数
2
解决办法
7227
查看次数

使用接口"无法降低继承方法的可见性"的含义

我有两个文件:

public interface PrintService {
    void print(PrintDetails details);
    class PrintDetails {
        private String printTemplate;
    }
    public interface Task {
        String ACTION = "print";
    }
}
Run Code Online (Sandbox Code Playgroud)

public class A implements PrintService {
    void print(PrintDetails details) {
        System.out.println("printing: " + details);
    }
    String action = PrintService.Task.ACTION;   
}
Run Code Online (Sandbox Code Playgroud)

我认为代码看起来没问题,但是我在第二个文件中收到错误信息void print(PrintDetails details) {:

无法降低继承方法的可见性PrintService.

有人能解释这对我意味着什么吗?

java interface access-specifier

7
推荐指数
1
解决办法
1万
查看次数

Lucene荧光笔

Lucene 4.3.1荧光笔是如何工作的?我想从文档打印出搜索结果(作为搜索的单词和该单词后面的8个单词).我如何使用荧光笔类来做到这一点?我已将完整的txt,html和xml文档添加到文件中并将其添加到我的索引中,现在我有一个搜索公式,我可能会从中添加荧光笔功能:

String index = "index";
String field = "contents";
String queries = null;
int repeat = 1;
boolean raw = true; //not sure what raw really does???
String queryString = null; //keep null, prompt user later for it
int hitsPerPage = 10; //leave it at 10, go from there later

//need to add all files to same directory
index = "C:\\Users\\plib\\Documents\\index";
repeat = 4;


IndexReader reader = DirectoryReader.open(FSDirectory.open(new File(index)));
IndexSearcher searcher = new IndexSearcher(reader);
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43); …
Run Code Online (Sandbox Code Playgroud)

java lucene lucene-highlighter

7
推荐指数
2
解决办法
9033
查看次数

导出模块模式

我刚刚开始学习JavaScript中的模式,并习惯于编写这样的JavaScript:

(function(window){
  var privateVar;
  var privateFunc = function(param){     
    //do something
  }

  return{
    publicFunc: function(){
    do something
  }

}(window));
Run Code Online (Sandbox Code Playgroud)

但最近我发现一些脚本在开头就写了这样的东西:

(function (root, factory) {
    if ( typeof define === 'function' && define.amd ) {
        define('something', factory(root));
    } else if ( typeof exports === 'object' ) {
        module.exports = factory(root);
    } else {
        root.something = factory(root);
    }
})(window || this, function (root) {

      var privateVar;
      var privateFunc = function(param){     
        //do something
      }

      return{
        publicFunc: function(){
        do something
      }

});
Run Code Online (Sandbox Code Playgroud)

那么,这段代码在开始时意味着什么呢?它与此模块导出技术之间有什么区别:

var MODULE …
Run Code Online (Sandbox Code Playgroud)

javascript module-pattern

7
推荐指数
1
解决办法
5744
查看次数