问题列表 - 第317964页

SIMD (avx) 处理如何工作?例如,如果我想要 10 个 32 位浮点数,如何放入 256 位 avx 向量?

我正在学习 C avx 内在函数,我想知道它是如何工作的。

我很熟悉我可以做这样的事情:

__m256 evens = _mm256_set_ps(2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0);
Run Code Online (Sandbox Code Playgroud)

这里我存储 8 个 32 位浮点数。所以这是 256 位。

但是假设我正在编写一个线性代数库。然后我如何处理任意数量的向量;例如,如何将 10 个 32 位浮点数放入 avx 向量中?

如果您能提供一些例子,我将非常感激

c simd avx

-1
推荐指数
1
解决办法
161
查看次数

iframe 中的 Chrome 第 3 方 cookie(SameSite=None;安全)

就像其他人一样,我正在努力支持 Chrome 中即将到来的第 3 方 cookie 更改。我的用户(其他域上的其他网站)将我的网页包含在 iframe 中。在我的页面中,我设置了一个 cookie(只有 iframe 需要在该父网站的上下文中看到该 cookie,因此实际上不是第 3 方 cookie)。

这在 Firefox 中工作正常(可能已经禁用了第 3 方 cookie),但是当在隐身模式下使用 Chrome 时,禁用第 3 方 cookie,我无法设置我的 cookie。

下面是一个例子。如果您重新加载父级,cookie 就会丢失(实际上它永远不会被设置,即使在重新加载之前也是如此)。Chrome 开发工具中没有警告,但您可以在“应用程序”选项卡中看到 cookie 从未被设置。

有什么想法为什么这在 Firefox 中有效,但在禁用 3rd party cookie 的 Chrome 隐身模式中无效?有办法让这个工作吗?

父页面(domain1.com):

<html>
    <head>
        <style>
            iframe.myframe {
                width: 800px;
                height: 500px;
            }
        </style>
    </head>
    <body>
        <iframe class="myframe" src="https://domain2.com/my_thing.html"/>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

子页面(domain2.com):

<html>
    <head>
        <style> body{ background: blue; } </style>
    </head>
    <body>
        <script>
            let num = getCookie('num');
            console.log('Pre-change: '+num);
            num …
Run Code Online (Sandbox Code Playgroud)

cookies google-chrome samesite third-party-cookies

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

如何确定动态数组公式所需的单元格数量

我想确定需要多少行来保存动态数组公式的结果。这是我尝试过的:

  • 计算 CurrentArray 返回的范围的行数:生成错误 1004 未找到单元格。
  • 对公式使用 Evaluate 并检查 LBound 和 UBound:生成错误 438 对象不支持此属性或方法。

例子:

单元格 A1 具有公式“=SEQUENCE(10)”

使用此代码;

Sub check4array()
    Debug.Print Range("A1").HasArray
    Debug.Print Range("A1").CurrentArray.Rows.Count
    Debug.Print UBound(Evaluate(Range("A1").arrayformula))
End Sub
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

错误的

错误1004

关于数组,有些东西我没有得到。请帮我理解一下!

excel vba

3
推荐指数
1
解决办法
125
查看次数

C中数字的指针

假设有一个获取参数的函数int *。

\n
void foo(int *x)\n{\n    \n}\n
Run Code Online (Sandbox Code Playgroud)\n

如果我想调用这个函数而不创建 int 变量

\n
int main()\n{\n    foo(&1);\n    return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

编译失败,我收到此错误消息:

\n
lvalue required as unary \xe2\x80\x98&\xe2\x80\x99 operand\n
Run Code Online (Sandbox Code Playgroud)\n

为什么1没有地址?那不是存储在堆栈中吗?

\n

c gcc pointers

3
推荐指数
1
解决办法
176
查看次数

是否有充分的理由将 OpenJDK 代码中的以下 ArrayList 构造函数分为两种不同的情况?

例如,在 JDK17 中阅读 ArrayList 类的 OpenJDK 代码时

(https://github.com/openjdk/jdk17/blob/master/src/java.base/share/classes/java/util/ArrayList.java)

我偶然发现了以下构造函数:

public ArrayList(Collection<? extends E> c) {
    Object[] a = c.toArray();
    if ((size = a.length) != 0) {
        if (c.getClass() == ArrayList.class) {
            elementData = a;
        } else {
            elementData = Arrays.copyOf(a, size, Object[].class);
        }
    } else {
        // replace with empty array.
        elementData = EMPTY_ELEMENTDATA;
    }
}
Run Code Online (Sandbox Code Playgroud)

c.getClass()区分是或不是的原因是什么ArrayList.class?这个案子有必要分拆吗?

(我只是想理解 OpenJDK 类 ArrayList 发行版中的 Java 代码。)

java reflection constructor arraylist java-17

12
推荐指数
2
解决办法
290
查看次数

寻找更快的 R 计算以进行迭代矩阵计算

我有以下代码位于优化例程中。因此,虽然速度相当快,但分析显示产生结果的行被称为res我的代码中最大的瓶颈。

我尝试了很多方法来改进这一点,并最终得到了最后一行:

res <- exp(X %*% log(pr.t) + mX %*% log(1 - pr.t)) %*% wts
Run Code Online (Sandbox Code Playgroud)

在我的问题中,矩阵的元素X是固定的,并且不会随着迭代而改变。因此,我还可以计算、存储和回收X和mX。每次迭代发生的变化是我在对象中计算的一些概率pr.t。

我尝试过 Rcpp,但 Rcpp 与我工作中的 R 代码一样快。

我现在向这个小组发出呼吁,看看是否有人能找到一种绝妙的方法来加快最终产品的生产线速度res。下面是设置问题的示例代码,给出了实际问题的可重现示例。

X <- matrix(sample(c(0,1), 5000, replace = TRUE), 1000, 5)
mX <- 1 - X
pr.t <- matrix(runif(75), 5, 15)
wts <- runif(15)
res <- exp(X %*% log(pr.t) + mX %*% log(1 - pr.t)) %*% wts
Run Code Online (Sandbox Code Playgroud)

performance r matrix

5
推荐指数
1
解决办法
151
查看次数

无法从程序集“Microsoft.Data.SqlClient,Version=5.0.0.0,Culture=neutral,PublicKeyToken=23ec7fc2d6eaa4a5”加载类型“SqlGuidCaster”

我为.NET8创建了一个空白的webapi项目,安装了两个包Microsoft.Extensions.DependencyModel、Microsoft.Data.SqlClient\n以下是源代码\xef\xbc\x9a\nusing Microsoft.Extensions.DependencyModel; using System.Reflection; using System.Runtime.Loader; var builder = WebApplication.CreateBuilder(args); var list = DependencyContext.Default.RuntimeLibraries.ToList(); var assemblies = list.Select(m =>{ try { return AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(m.Name)); }catch { return null; } }).Where(m => m != null).ToList(); foreach (var assembly in assemblies) {foreach (var type in assembly.GetTypes()) { } } app.Run();

\n

编译后会提示如标题的错误信息。\n.NET6中不存在这种情况。\n将Microsoft.Data.SqlClient改为System.Data.SqlClient时也会出现类似错误\n如何解决?太感谢了。

\n

system.data.sqlclient .net-8.0

5
推荐指数
1
解决办法
2616
查看次数

如何制作一个可变迭代器来锁定内部数据直到被删除?

我的目标是使用NewType(Arc<RwLock<Vec<T>>>)一个many_iter_mut()返回迭代器的方法来创建一个迭代器,该迭代器RwLockWriteGuard在内部Vec<T>.

因此,写锁将由ManyIterMut迭代器保持,直到迭代器被删除。这与为每次调用获取写锁不同ManyIterMut::next()。(我已经在其他地方工作过)

这对于使调用者能够同时设置许多元素并读取许多元素非常有用,但是以原子方式进行的。这样读者总是会看到从一批写入到下一批写入的一致视图。(我之前的 implManyIterMut未通过并发测试。)

ManyIterMut::next()问题是由于生命周期问题我无法编译该方法。编译器似乎不喜欢 the 由write_lockthe 拥有,ManyIterMut而不是由LockedVec正在迭代的 which 拥有。

这里是游乐场。

产生错误的代码是:

impl<'a, V, T: 'a> LendingIterator for ManyIterMut<'a, V, T>
where
    V: StorageVecWrites<T> + ?Sized,
    V::LockedData: StorageVecReads<T>,
    T: Copy,
{
    type Item<'b> = StorageSetter<'b, V, T>
    where
        Self: 'b;

    // This is the fn that won't compile.
    //
    // we can't change the fn signature, it …
Run Code Online (Sandbox Code Playgroud)

multithreading iterator rust

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

我如何用两种方式输出 &lt;&lt; 的内容?

例如,如果我想要一个默认的输出版本<<和一个详细的版本。

myClass myObject(//Constructor parameters);

cout << myObject << "\n";
cout << myObject.detailed << "\n";
Run Code Online (Sandbox Code Playgroud)

我尝试在我的班级中制作一个修改器,但这似乎不起作用。

class myClass {
public:
   friend std::ostream& operator<<(std::ostream& output, const myClass& myObject);
   std::ostream& detailed(std::ostream& output);
}
Run Code Online (Sandbox Code Playgroud)

这给出了错误“必须调用对非静态成员函数的引用”。

c++ operator-overloading ostream

0
推荐指数
1
解决办法
187
查看次数

React Native TextInput 错误:执行输入操作需要有效的 sessionID

我有一个 React Native 项目,使用 Expo 管理的工作流程和 Prebuild。

我只是渲染一个 TextInput 组件,但收到此错误:

[RemoteTextInput] -[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] 执行输入操作需要有效的 sessionID

由于此错误,我的状态无法更新其值。我不知道这意味着什么。

包.json

"expo": "~49.0.15",
"react": "18.2.0",
"react-native": "0.72.6",
Run Code Online (Sandbox Code Playgroud)

在 TextInput 中输入文本后:

[CoreGraphics] 错误:此应用程序或其使用的库已将无效的数值(NaN 或非数字)传递给 CoreGraphics API,并且该值将被忽略。请解决这个问题。[CoreGraphics] 如果您想查看回溯,请设置 CG_NUMERICS_SHOW_BACKTRACE 环境变量。

<TextInput
  style={[styles.input, { backgroundColor: lightGray }]}
  autoCapitalize="none"
  autoComplete="email"
  keyboardType="email-address"
  placeholder="Email"
  onChangeText={(text) => setEmail(text)}
  value={email}
/>
<TextInput
  style={[styles.input, { backgroundColor: lightGray }]}
  autoCapitalize="none"
  placeholder="Password"
  secureTextEntry={true}
  onChangeText={(text) => setPassword(text)}
  value={password}
/>
Run Code Online (Sandbox Code Playgroud)

更新

然后我在新的npx create-expo-app跑步中尝试了这个并得到了相同的结果。npx expo prebuildnpx expo run:ios

react-native expo

9
推荐指数
0
解决办法
1877
查看次数