在 C 语言中,我想知道是否有一种“最佳”方法来计算半整数幂。简而言之,问题是计算 x^(n/2) (假设n是奇数且相当小,并且x是一个浮点数)。sqrt(pow(x, n))和之间的性能/准确性是否存在重大差异pow(x, 0.5 * n)?或者甚至反过来:pow(sqrt(x), n)。
是否有其他一些实现来处理半整数的这种特定情况?
我的第一个想法是,您只需pow在一次调用中使用和计算整个过程,但我觉得浮点舍入和我失去了问题的一些精度,因为这显然是一半-整数。pow我想如果你使用整数幂并让sqrt处理 (1/2) 部分,也许会有更好的错误性能。
我还注意到 GSL 有计算小整数幂的函数;将这些功能结合起来会sqrt比仅仅使用更好吗pow?
我对 C 科学编程还很陌生,所以我不确定我会去哪里寻找类似的实现,而且 Google 还没有真正发现任何东西。
我希望将一些文档/页面加载逻辑封装在 Vue 组件中,但我在让它工作时遇到了麻烦。这是我尝试过的。(如果相关的话,我使用 Vite + Vue + TS 和"pdfjs-dist": "^2.14.305", "vue": "^3.2.25"。)
首先,我有一个名为 PDFDocument 的组件。它传递 PDF URL 和比例作为属性,并处理获取文档和加载页面。
// PDFDocument.vue
<template>
<div class="pdf-document">
<PDFPage v-for="page in pages" v-bind="{page, scale}" :key="page.pageNumber"/>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import * as pdfjsLib from 'pdfjs-dist';
import PDFPage from './PDFPage.vue';
pdfjsLib.GlobalWorkerOptions.workerSrc = "../../node_modules/pdfjs-dist/build/pdf.worker.js";
export default defineComponent({
props: {
url: { type: String, required: true },
scale: { type: Number, required: true },
},
data() {
let pdf: …Run Code Online (Sandbox Code Playgroud)