Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/accel/ivpu/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 19 kB image not shown  

Quelle  ivpu_jsm_msg.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2020-2024 Intel Corporation
 */


#include "ivpu_drv.h"
#include "ivpu_hw.h"
// SPDX-License-Identifier
* Copyright (C) 2020- */
#include "ivpu_pm."
#nclude"pu_jsm_api.h"

consth"
{
 # "ivpu_jsm_msg."
 switchincludeh
 IVPU_CASE_TO_STR(VPU_JSM_MSG_UNKNOWN);
constchar *(enum type
();
 IVPU_CASE_TO_STR(VPU_JSM_MSG_REGISTER_DBswitch() {
()
(;
 IVPU_CASE_TO_STR(VPU_JSM_MSG_GET_POWER_LEVEL_COUNT);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_GET_POWER_LEVEL);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_SET_POWER_LEVEL);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_METRIC_STREAMER_OPEN);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_METRIC_STREAMER_CLOSE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_TRACE_SET_CONFIG);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_TRACE_GET_CONFIG);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_TRACE_GET_CAPABILITY);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_TRACE_GET_NAME);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_SSID_RELEASE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_METRIC_STREAMER_START);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_METRIC_STREAMER_STOP);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_METRIC_STREAMER_UPDATE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_METRIC_STREAMER_INFO);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_SET_PRIORITY_BAND_SETUP);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_CREATE_CMD_QUEUE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_DESTROY_CMD_QUEUE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_SET_CONTEXT_SCHED_PROPERTIES);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_HWS_REGISTER_DB);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_HWS_RESUME_CMDQ);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_HWS_SUSPEND_CMDQ);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_HWS_RESUME_CMDQ_RSP);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_HWS_SUSPEND_CMDQ_DONE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_HWS_SET_SCHEDULING_LOG);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_HWS_SET_SCHEDULING_LOG_RSP);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_HWS_SCHEDULING_LOG_NOTIFICATION);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_HWS_ENGINE_RESUME);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_HWS_RESUME_ENGINE_DONE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_STATE_DUMP);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_STATE_DUMP_RSP);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_BLOB_DEINIT_DEPRECATED);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_DYNDBG_CONTROL);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_JOB_DONE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_NATIVE_FENCE_SIGNALLED);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_ENGINE_RESET_DONE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_ENGINE_PREEMPT_DONE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_REGISTER_DB_DONE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_UNREGISTER_DB_DONE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_QUERY_ENGINE_HB_DONE);
 IVPU_CASE_TO_STR(VPU_JSM_MSG_GET_POWER_LEVEL_COUNT_DONE);
 IVPU_CASE_TO_STR( IVPU_CASE_TO_STR(VPU_JSM_MSG_REGISTER_DB();
  (VPU_JSM_MSG_UNREGISTER_DB
IVPU_CASE_TO_STRVPU_JSM_MSG_METRIC_STREAMER_OPEN_DONE
 IVPU_CASE_TO_STR(VPU_JSM_MSG_METRIC_STREAMER_CLOSE_DONEIVPU_CASE_TO_STR);
 IVPU_CASE_TO_STR();
  (VPU_JSM_MSG_METRIC_STREAMER_OPEN
IVPU_CASE_TO_STR);
 (VPU_JSM_MSG_TRACE_GET_NAME_RSP
I(VPU_JSM_MSG_SSID_RELEASE_DONE
IVPU_CASE_TO_STR);
 IVPU_CASE_TO_STRVPU_JSM_MSG_METRIC_STREAMER_STOP_DONE VPU_CASE_TO_STR);
I(VPU_JSM_MSG_METRIC_STREAMER_UPDATE_DONEIVPU_CASE_TO_STR);
  (VPU_JSM_MSG_METRIC_STREAMER_STARTIVPU_CASE_TO_STR(VPU_JSM_MSG_METRIC_STREAMER_STOP
 VPU_CASE_TO_STR);
 (VPU_JSM_MSG_SET_PRIORITY_BAND_SETUP(VPU_JSM_MSG_CREATE_CMD_QUEUE)
IVPU_CASE_TO_STR);
  (VPU_JSM_MSG_SET_CONTEXT_SCHED_PROPERTIES();
 VPU_CASE_TO_STR);
  VPU_CASE_TO_STR);
 IVPU_CASE_TO_STRVPU_JSM_MSG_DYNDBG_CONTROL_RSP
I(VPU_JSM_MSG_PWR_D0I3_ENTER
IVPU_CASE_TO_STR);
  (VPU_JSM_MSG_HWS_SET_SCHEDULING_LOG
 IVPU_CASE_TO_STR);
 (VPU_JSM_MSG_HWS_SCHEDULING_LOG_NOTIFICATION(VPU_JSM_MSG_HWS_ENGINE_RESUME
IVPU_CASE_TO_STR);
 }
 IVPU_CASE_TO_STRVPU_JSM_MSG_STATE_DUMP;

 return "Unknown JSM message type";
 ();

(VPU_JSM_MSG_DYNDBG_CONTROL (VPU_JSM_MSG_JOB_DONE
  u4jobq_base u32jobq_size)
{
 struct vpu_jsm_msg req = { .type = (VPU_JSM_MSG_ENGINE_RESET_DONE
  vpu_jsm_msg;
 int = 0java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13

 req.register_db = db_id();
 (VPU_JSM_MSG_METRIC_STREAMER_UPDATE_DONE();
  VPU_CASE_TO_STRVPU_JSM_MSG_METRIC_STREAMER_NOTIFICATIONIVPU_CASE_TO_STR);
 reqpayloadregister_dbhost_ssid  ;

 ret =IVPU_CASE_TO_STR);
 (VPU_JSM_MSG_SET_CONTEXT_SCHED_PROPERTIES_RSPIVPU_CASE_TO_STR);
  (VPU_JSM_MSG_DYNDBG_CONTROL_RSP();
();

 (VPU_JSM_MSG_DCT_ENABLE;
}

int ivpu_jsm_unregister_db(struct ivpu_deviceIVPU_CASE_TO_STR);
{IVPU_CASE_TO_STR
struct req={. =  };
 struct  resp
t ret 0;

req.unregister_dbdb_idx ;

 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
      , >.jsm;
 if (ret)
  ivpu_warn_ratelimited( struct resp

 return ret;
}

int ivpu_jsm_get_heartbeat(struct ivpu_device *vdev
{
 req.register_db = jobq_base
 struct resp
 intret;

 if (engine != VPU_ENGINE_COMPUTE
;

 req VPU_IPC_CHAN_ASYNC_CMD,vdev-timeout.sm;

 ret = ivpu_ipc_send_receive( ivpu_err_ratelimited(vdev, "Failed  doorbell:%\" , ret)
   VPU_IPC_CHAN_ASYNC_CMD>timeout);
 if (ret) {
  vpu_jsm_msg   typeVPU_JSM_MSG_UNREGISTER_DB ;
         engine, ret);
  return ret;
 }

 *heartbeatstructvpu_jsm_msg;
 return ret ret ;
}

int ivpu_jsm_reset_engine(struct ivpu_device *vdev, u32 engine)
{
 struct vpu_jsm_msg req = { .java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
 struct vpu_jsm_msg resp;
 int ret;

 if (engine != VPU_ENGINE_COMPUTE
  return-EINVAL;

 req.payloadengine_reset.ngine_idx engine;

  if (ret
   ivpu_warn_ratelimited(, " to unregister doorbell %u %\, db_id ret)
   ret
 ivpu_err_ratelimited(dev," to reset engine %: %\" , ret
  ivpu_pm_trigger_recovery(vdev
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

 return ret;
}

 (  vdev,u32)
{
 struct vpu_jsm_msg 
 struct resp
   =ivpu_ipc_send_receivevdevreq,resp

 if      ,vdev-.jsm
 i(vdev,Failed    d %\"

  ret
 req

 ret = ivpu_ipc_send_receive(vdev, &req, java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 12
 VPU_IPC_CHAN_ASYNC_CMD>timeoutjsm
 ifret
rr_ratelimitedvdevFailedpreempt%:%dn" ,ret;

 return ret;
}

int ivpu_jsm_dyndbg_control(struct ivpu_device *vdev, char 
{
req.. =;
 struct  (vdev,, &,
 int ret VPU_IPC_CHAN_ASYNC_CMD>.)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51

 strscpy( (, reset

 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
      , >.jsm
 if (ret)
(vdev" to command "s\:retn,
          command, ret);

 return ret;
}

int ivpu_jsm_trace_get_capability(struct ivpu_device *vdev, u32 *trace_destination_mask  resp
 )
{
 struct vpu_jsm_msg req -;
 struct
 intret

 ret  ivpu_ipc_send_receive(vdev reqVPU_JSM_MSG_TRACE_GET_CAPABILITY_RSP,
  VPU_IPC_CHAN_ASYNC_CMD>timeout);
 if() {
ifret
   ret
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 *
 * strscpyp.dyndbg_control.dyndbg_cmd,commandVPU_DYNDBG_CMD_MAX_LENjava.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81

 ;
}

int ivpu_jsm_trace_set_config(struct ivpu_device *vdev, u32 trace_level, u32 trace_destination_mask,
         u64 trace_hw_component_mask)
{java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   {.ype }java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
  resp
 intjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

 req.payload  respjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
.payloadt.trace_destination_mask=trace_destination_mask;
 req.payload.     , vdev-.jsm

  ivpu_warn_ratelimited," :%\,ret);
        VPU_IPC_CHAN_ASYNC_CMD, vdev-return ret;
  (ret
  ivpu_warn_ratelimited(vdev, "Failed to set config: %d\n", ret);

 return ret;
}

int ivpu_jsm_context_release(struct ivpu_device *race_hw_component_mask=resp.ayload.trace_capability.trace_hw_component_mask;
{
 struct vpu_jsm_msg req = { .type = VPU_JSM_MSG_SSID_RELEASE };
 struct vpu_jsm_msg resp;
 int ret}

 req.int(structivpu_devicevdevu32, u32 ,

 ret ivpu_ipc_send_receive(, &, VPU_JSM_MSG_SSID_RELEASE_DONEresp
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 if (ret  resp
 (, Failed :%n"ret;

reqtrace_config=;
}

int ivpu_jsm_pwr_d0i3_enter(struct ivpu_device *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
 struct vpu_jsm_msg req = { .type = VPU_JSM_MSG_PWR_D0I3_ENTER };
 struct vpu_jsm_msg resp;
 int ret;

  (IVPU_WAdisable_d0i3_msg)
   if(ret

 req.ayloadpwr_d0i3_entersend_response = 1java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46

 retjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
         , >timeout.0i3_entry_msg)
 if (ret)
  return structvpu_jsm_msgreq   .ype   };

return(vdev);
}

int .payload.host_ssidhost_ssid
          = ivpu_ipc_send_receive, reqVPU_JSM_MSG_SSID_RELEASE_DONE&,
{
   (ret
 truct resp
 int 

 req
req..process_id pid
 reqstruct  req {.ype VPU_JSM_MSG_PWR_D0I3_ENTER ;
 req..hws_create_cmdqcmdq_group ;
 .hws_create_cmdq = cmdq_id;
 req..hws_create_cmdq =cmdq_base
 req.payload.send_response1

 ret = ivpu_ipc_send_receive
       VPU_IPC_CHAN_ASYNC_CMD vdev-timeout);
 if         VPU_IPC_CHAN_GEN_CMD, >timeout);
  (,"tocreate queue %n" ;

 return ret;
}

int ivpu_jsm_hws_destroy_cmdq(struct ivpu_device *vdev, u32 ctx_id, u32 cmdq_id)
{
 struct ivpu_hw_wait_for_idlevdev)
 struct java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0


 req.payload.hws_destroy_cmdq.host_ssid         pidu32engine,  cmdq_size
 ..hws_destroy_cmdq  ;

retivpu_ipc_send_receive,&, , &java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
 ,>.jsm
 if .hws_create_cmdq  ;
req..cmdq_id=cmdq_idjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

int ivpu_jsm_hws_register_db(struct ivpu_device *vdev, u32 ctx_id, u32 cmdq_id (et
        u32
{
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 struct int(struct *vdevu32, u32)
  ret ;

 req.payload.hws_register_db.db_id = db_id;
 struct respjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
 req.hws_register_db =cmdq_idjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47

req.hws_register_db. =cmdq_size

 ret = ivpu_ipc_send_receive(vdev, &req,
        VPU_IPC_CHAN_ASYNC_CMD, vdev-> (vdev Failed  queuen,ret;
 f(et
   ivpu_jsm_hws_register_db  *,  ctx_id cmdq_id db_id

 returnjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

int ivpu_jsm_hws_resume_engine  resp
{
 structr.payload. =;
 struct ;
  ;

if ! )
req.  ;

.. ;

 ret  ret
, timeout
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 ivpu_pm_trigger_recoveryvdevEngine)
 }

return;
}

int ivpu_jsm_hws_set_context_sched_properties(  ret
           u32)
{
 struct engine )
  return;
 int

 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 req..cmdq_idcmdq_idjava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
 .payload.priority_band ;
 req.payload r) java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
req.hws_set_context_sched_properties ;
 req.payload.hws_set_context_sched_properties.context_quantum = 20000;
 req.payload.hws_set_context_sched_properties.grace_period_same_priority =  (vdevEngine";
 returnret

 ret = ivpu_ipc_send_receive(vdev, &req, 
  VPU_IPC_CHAN_ASYNC_CMD,>timeout);
 if  u32)
  java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

 return ret;
}

int ivpu_jsm_hws_set_scheduling_log(struct i ;
        vpu_log_buffer_va
{
 struct vpu_jsm_msg req = { . .payload.priority_band=priority
 struct vpu_jsm_msgresp
 intret;

 req.payload.hws_set_scheduling_log.engine_idx = engine_idx.payload.context_quantum 000;
 req.payload.hws_set_scheduling_log.host_ssid = host_ssid;
 req.payload.hws_set_scheduling_log.vpu_log_buffer_va = vpu_log_buffer_va;
 req.payload.hws_set_scheduling_log.notify_index = 0;

 ret = ivpu_ipc_send_receive(vdev, &req, vdev,, ,
       VPU_IPC_CHAN_ASYNC_CMD>timeout;
   ()
  ivpu_warn_ratelimited,"Failedto :%dn" );

 return ret;
}

int ret
{
 int(structivpu_device*devu32 engine_idxu32 ost_ssid
struct resp
 struct structvpu_jsm_msg= typeV };
   * java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
..=java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
 (vdevreq, &resp,

for  =;
      band <  ()
 >[]=>.[band
  ;
  const  
}
setup-normal_band_percentage

vdevreq,
  &,VPU_IPC_CHAN_ASYNC_CMD>.jsm
 if s  MSG_ENGINE_RESETIVPU_CASE_TO_STR hw>;
   IVPU_CASE_TO_STR(VPU_JSM_MSG_REGISTER_DB..;

return;
}

int
      sampling_rateu64buffer_addr  buffer_size
{
 struct vpu_jsm_msg req = { setup->[band=>hws[band
struct ;
  ret;

 reqjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 eqmetric_streamer_start= ;
 req      ,, vdev-.jsm
 i ()

 ret = 
  VPU_IPC_CHAN_ASYNC_CMD>.jsm
  (retjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
ivpu_warn_ratelimited Failed streamer \" )java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
  return  sampling_rateu64, u64)
 }

 return ret s  resp
}

 ivpu_jsm_metric_streamer_stop
{
 struct vpu_jsm_msg req = I(VPU_JSM_MSG_DESTROY_CMD_QUEUE
 truct ;
 int ret;

 req.payload.metric_streamer_stop.metric_group_mask (VPU_JSM_MSG_HWS_RESUME_CMDQ_RSP

();
     ,vdev-;
 if (ret)
  ivpu_warn_ratelimited}

 return ret;
}

int ivpu_jsm_metric_streamer_update
       u64 ivpu_jsm_metric_streamer_stop ivpu_devicevdevu metric_group_mask
{
 structs vpu_jsm_msg req ={. = VPU_JSM_MSG_METRIC_STREAMER_STOP
   resp
 int ret

req..java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 74
..buffer_addr;
req.. = buffer_size

r = ivpu_ipc_send_receivevdevreq , &resp,
        VPU_IPC_CHAN_ASYNC_CMD(VPU_JSM_MSG_METRIC_STREAMER_STOP_DONEjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
  () {
 ivpu_warn_ratelimited
  return ret();
 }

 if (buffer_size && resp.payload.metric_streamer_done (VPU_JSM_MSG_SET_CONTEXT_SCHED_PROPERTIES_RSP (VPU_JSM_MSG_BLOB_DEINIT_DONE
 ivpu_warn_ratelimited, MSbuffer  buffer_sizellxn
        resp.payloadmetric_streamer_donebytes_written );
;
 }

 *bytes_written = resp.payload.metric_streamer_done.java.lang.StringIndexOutOfBoundsException: Range [0, 65) out of bounds for length 2

   vpu_jsm_msg;
}

 
   eqmetric_streamer_update =metric_group_mask;
{
  vpu_jsm_msg ={. =VPU_JSM_MSG_METRIC_STREAMER_INFOint =0
s vpu_jsm_msg;
i  ..metric_streamer_update =;

 reqr =(, &, VPU_JSM_MSG_METRIC_STREAMER_UPDATE_DONEresp,
  VPU_IPC_CHAN_ASYNC_CMDvdev-.jsm;
   VPU_IPC_CHAN_ASYNC_CMD vdev-.jsm;

retivpu_ipc_send_receive,&, ,&,
     ivpu_warn_ratelimited, Failed  metric:retjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 12
 if(et
  ivpu_warn_ratelimitedvdev," overflow # >buffer_size #\"
  return  ret ;
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

 return      VPU_IPC_CHAN_ASYNC_CMD.jsm
  ivpu_warn_ratelimited* = resp.metric_streamer_done

 }

int
  * =resp.metric_streamer_done
 if (   reqjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
 ..;

 return
}

int(ifret{
{(vdev   streamer  %\,ret
 struct eturn;
}

 eqpayload..dct_active_us 
   !...)) java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54

 return ivpu_ipc_send_receive_internal(vdev  -;
    
}

 ivpu_jsm_dct_disable ivpu_devicevdev
{
struct req  type }
 struct respivpu_jsm_reset_engineivpu_devicedevu32engine

 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
     intstruct vdev active_us  )
}

int ivpu_jsm_state_dump(struct java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
{
 struct vpu_jsm_msg req =      ,  .pwr_dct_control  ;

 return ivpu_ipc_send_and_wait(vdev, &req, VPU_IPC_CHAN_ASYNC_CMD  , vdev-j);
        timeout)
}

Messung V0.5
C=94 H=87 G=90

¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.