« Tüm yayınlar

mp-units, dB, dBm, Np, pH gibi logaritmik birimler için tip güvenli tasarım önerdi

mp-units, dB, dBm, Np ve pH gibi logaritmik birimleri tip güvenli modellemek için implementasyondan önce uzman görüşü istiyor.

Mühendislikte dB, dBm, Np ve pH gibi logaritmik büyüklükler her yerde kullanılır, ama genel amaçlı birim kütüphanelerinin hiçbiri bunları doğru modellemiyor. nholthaus/units'te dBW_t(10.0) + dBm_t(40.0) derlenip anlamsız bir '20 dBW' üretiyor; Python'un pint kütüphanesi ise dB'yi yalnızca güç için tanımlayıp voltaj/akım kazançlarının doğru katsayısını kullanıcıya bırakıyor.

mp-units ekibi, 'seviye' (level, örn. dBm) ile 'kazanç' (gain, örn. dB, Np) kavramlarını ayıran yeni bir tasarım yayımladı. Seviye bir referansa göre sabitlenmiş afin bir nokta, kazanç ise bir farktır: seviye+kazanç=seviye, seviye-seviye=kazanç, ama seviye+seviye tanımsızdır. Güç mü yoksa kök-güç mü olduğu bilgisi büyüklük türünde taşınır; bu sayede +6 dB'lik bir voltaj kazancının .linear() değeri 2.0, güç kazancının değeri ise ~3.98 çıkar ve tip sistemi yanlış birleşimleri (örneğin bir güç seviyesine voltaj kazancı uygulamayı) engeller.

Tasarım RF, ses/DSP, akustik, müzik aralıkları (oktav, cent), bilgi teorisi (Sh, nat, Hart), pH ve yıldız kadiri gibi çok farklı alanları tek mekanizmayla kapsamayı ve IEC 80000-15:2026 ile uyumlu olmayı hedefliyor.

Ekip, koda geçmeden önce alan uzmanlarından geri bildirim istiyor; log(0) davranışı (IEEE -inf, hata fırlatma, ayrı hata tipi ya da gerçek DSP kodlarında görülen -400 dB tabanı gibi birime özgü bir sentinel) ve seviyelerin ekranda '10 dBm' mi yoksa ISO'ya uygun '10 dB (re 1 mW)' mı gösterileceği gibi altı açık soru var.

Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz